代码之家  ›  专栏  ›  技术社区  ›  kiran girase

如何从C语言中获取JSON数组的数据?

  •  0
  • kiran girase  · 技术社区  · 6 年前

    我想从这个json数组中获取数据。 我用了一些关键词,但每次都会出错,我怎么才能得到数据呢?

    JArray test1 = JArray.Parse(jsondata);
    string ids = test1["id"];
    

    如果我写“身份证”我就得不到11分

    {[
      {
        "id": 11,
        "userName": null,
        "passWord": null,
        "email": "someone@gmail.com",
        "mobile": "9898989898",
        "fullName": "Ramesh Sharma",
        "location": "Rajkot",
        "city_id": 1
      }
    ]}
    
    2 回复  |  直到 6 年前
        1
  •  1
  •   Prany    6 年前

    你可以得到每一个这样的值,那么就取决于你需要选择哪一个值。

        foreach (JObject content in test1.Children<JObject>())
        {
              string Id = content["id"].ToString();
              string email = content["email"].ToString();
        }
    

    下面是正确格式化的json。

    [{"id":11,"userName":null,"passWord":null,"email":"someone@gmail.com","mobile":"9423422882","fullName":"Ramesh Sharma","location":"Rajkot","city_id":1}]
    
        2
  •  1
  •   CodingYoshi    6 年前

    在对您的问题的评论中,您说您的json是:

    [
      {
        "id": 11,
        "userName": null,
        "passWord": null,
        "email": "someone@gmail.com",
        "mobile": "9898989898",
        "fullName": "Ramesh Sharma",
        "location": "Rajkot",
        "city_id": 1
      }
    ]
    

    为json创建c类,如图所示 here 你会得到这些课程:

    public class Rootobject
    {
        public Class1[] Property1 { get; set; }
    }
    
    public class Class1
    {
        public int id { get; set; }
        public object userName { get; set; }
        public object passWord { get; set; }
        public string email { get; set; }
        public string mobile { get; set; }
        public string fullName { get; set; }
        public string location { get; set; }
        public int city_id { get; set; }
    }
    

    然后反序列化如下:

    var results = JsonConvert.DeserializeObject<RootObject>(yourJSON);