我正在使用 Newtonsoft JSon c# 插件。我创建了一个 JArray
{"data":[{"name":"Wesley 1","id":"616611941"},{"name":"Wesley 2","id":"100000138033375"},..............
我想知道有没有办法遍历花括号之间的每个对象并提取每个条目的名称和 ID?
感谢任何能提供帮助的人
根据其他一些问题,您可以尝试:
var array = JArray.Parse(json);
然后做一个
foreach(var item in array)
// do something
dynamic dynObj = JsonConvert.DeserializeObject(json);
foreach (var item in dynObj.data)
{
Console.WriteLine("{0} {1}",item.name,item.id);
}
使用 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 值
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();
}