【问题标题】:How to get values from a Jobject如何从 Jobject 中获取值
【发布时间】:2012-05-21 14:01:45
【问题描述】:

我正在使用 Newtonsoft JSon c# 插件。我创建了一个 JArray

{"data":[{"name":"Wesley 1","id":"616611941"},{"name":"Wesley 2","id":"100000138033375"},..............

我想知道有没有办法遍历花括号之间的每个对象并提取每个条目的名称和 ID?

感谢任何可以提供帮助的人

【问题讨论】:

标签: c# asp.net json


【解决方案1】:

根据您可以尝试的其他一些问题:

var array = JArray.Parse(json);

然后做一个

foreach(var item in array)
    // do something

【讨论】:

    【解决方案2】:
    dynamic dynObj = JsonConvert.DeserializeObject(json);
    foreach (var item in dynObj.data)
    {
        Console.WriteLine("{0} {1}",item.name,item.id);
    }
    

    【讨论】:

      【解决方案3】:

      使用 jQuery 你可以做到这一点。第一个循环将遍历数组中的每个项目。第二个循环将获取每个数组项中的键、值

      $.each(data, function() {
        $.each(this, function(key, value) {
          //do what ever you want
        });
      });
      

      编辑

      好的。你从别人那里得到了一些很好的答案。这是另一种方式。

      命名空间

      using System.Web.Script.Serialization;
      

      你添加强类型类来映射 json 中的数据

      public class wordList
      {
          public List<NameId> data { get; set; }
          public wordList() 
          { 
              data = new List<NameId>(); 
          }
      }
      
      public class NameId
      {
          public string name { get; set; }
          public string id { get; set; }        
      }
      

      然后你打电话

       string jsonObj = @"{""data"":[{""name"":""Wesley 1"",""id"":""616611941""},{""name"":""Wesley 2"",""id"":""100000138033375""}]}";
      
       JavaScriptSerializer jsSer = new JavaScriptSerializer();
       wordList wl = jsSer.Deserialize<wordList>(jsonObj);
      

      您可以遍历 WordList 以获取名称、id 值

      【讨论】:

      • 好的,伙计。我看到你的问题已经回答了。无论如何,我已经用另一个选项编辑了我的帖子。
      • 谢谢你是最好的。我自己做了这样的事情来让它在不创建类的情况下工作。我使用了 js 序列化程序,但将它与动态 c# 字典结合使用。工作得很好。
      【解决方案4】:
      using Newtonsoft.Json.Linq; 
      using System.Collections.Generic;
      
      List<JObject> data = JsonConvert.DeserializeObject<List<JObject>>(requestBody); 
         foreach(JObject d in data)
                          {
                              
                              string name = d.GetValue("name").ToString();
                              string id = d.GetValue("id").ToString();
                           
                          }
      

      【讨论】:

        猜你喜欢
        • 2018-09-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多