如何从Jobject获取值

时间:2012-05-21 14:01:46

标签: c# asp.net json

我正在使用Newtonsoft JSon c#插件。我给了JArray

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

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

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

4 个答案:

答案 0 :(得分:2)

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

var array = JArray.Parse(json);

然后再做一次

foreach(var item in array)
    // do something

答案 1 :(得分:2)

dynamic dynObj = JsonConvert.DeserializeObject(json);
foreach (var item in dynObj.data)
{
    Console.WriteLine("{0} {1}",item.name,item.id);
}

答案 2 :(得分:1)

使用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值

答案 3 :(得分:0)

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();
                     
                    }