【问题标题】:Parse json data string store in array解析json数据字符串存储在数组中
【发布时间】:2014-07-30 06:57:38
【问题描述】:

下面是string类型的解析json数据。

  "data": [
    {
      "Company": {
        "id": "1",
        “Value": “20”,
        "companyId": "2001”,
      }
    },
    {
      "Company": {
        "id": "2",
        “value”: "20”,
        "companyId”: "2002”,
      }
    },
    {
      "Company": {
        "id": “3”,
        “value”: “30”,
        "companyId”: "2003”,
      }
    },
 ]

var parseData = Newtonsoft.Json.Linq.JObject.Parse (e.ResponseData.ToString ());

将json数据字符串存储在数组中,存储公司价值的Arraylist。 这是第一次处理 Json 对象字符串。

【问题讨论】:

    标签: c# ios arrays json xamarin


    【解决方案1】:
    string json = @"{
          'status_code': 200,
          'status_text': 'matches found',
          'data': [{
             'company': {
               'id': '1',
               'value': '20',
               'companyId': '2001',}
             },
             {
             'company': {
               'id': '2',
               'value': '20',
               'companyId': '2002',}
             },
             {
             'company': {
               'id': '3',
               'value': '30',
               'companyId': '2003',}
             },]
           }";
    
    JObject jObj = JObject.Parse(json);
    var ids = jObj["data"].Children()["company"]["companyId"];
    var list = new List<string>();
    list.AddRange(ids.Select(id => id.Value<string>()));
    
    foreach (var item in list)
        Console.WriteLine(item);
    
    // Outputs ->
    //  2001
    //  2002
    //  2003
    

    编辑:

    来自公司的“所有”列表:

    JObject jObj = JObject.Parse(json);
    var jEnum = jObj["data"].Children()["company"];
    
    var list = jEnum.Select(company => 
        company.Values().Select(current => 
            current.Value<string>()).ToList()).ToList();
    

    【讨论】:

    • 它的 Say No 重载方法在 list.AddRange(ids.Select(id => id.Value())) 处接受 0 个参数;
    • 以上适用于最新的 JSON.net Nuget 包。调试。
    • Console.WriteLine("ids Value {0}",ids); Newtonsoft.Json.Linq.JEnumerable`1[[Newtonsoft.Json.Linq.JToken, Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=null]] 它给出输出。
    • 是的,本例中的“ids”字段为JEnumerable,包含JTokens. You'd want to output the values Console.WriteLine("ids Value {0}", string.Join(",", ids .Select(id => id.Value())));`
    • var companyid = parseData["data"].Children()["company"]["companyId"]; Console.WriteLine("ids Value {0}", string.Join(",", companyid.Select(id => id.Value())));给我编译器错误没有重载方法 Value 需要 '0' 参数
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-23
    相关资源
    最近更新 更多