C# 使用System.JSON迭代JSON
我正在探索.NET 4.5C# 使用System.JSON迭代JSON,c#,json,.net-4.5,C#,Json,.net 4.5,我正在探索.NET 4.5System.Json库的功能,但是没有太多文档,而且由于流行的Json.NET库,搜索起来非常困难 基本上,我想知道如何循环使用一些JSON,例如: {“人”:{“西蒙”:{Age:25},“史蒂夫”:{Age:15}} 我有一个字符串形式的JSON,我想遍历并显示每个人的年龄 所以首先我要做: var jsonObject=jsonObject.Parse(myString) 但我不知道下一步该怎么办。我很惊讶parse方法返回的是JsonValue而不是JsonO
System.Json
库的功能,但是没有太多文档,而且由于流行的Json.NET库,搜索起来非常困难
基本上,我想知道如何循环使用一些JSON,例如:
{“人”:{“西蒙”:{Age:25},“史蒂夫”:{Age:15}}
我有一个字符串形式的JSON,我想遍历并显示每个人的年龄
所以首先我要做:
var jsonObject=jsonObject.Parse(myString)代码>
但我不知道下一步该怎么办。我很惊讶parse方法返回的是JsonValue而不是JsonObject
我真正想做的是:
foreach (var child in jsonObject.Children)
{
if (child.name == "People")
{
// another foreach to loop over the people
// get their name and age, eg. person.Name and person.Children.Age (LINQ this or something)
}
}
有什么想法吗?请使用这个库,它比system.json本身好得多
urclassobj = await JsonConvert.DeserializeObjectAsync<urclass>(json string)
对于json的对象
string json2Send = await JsonConvert.SerializeObjectAsync(urclassobject);
使用和一些Linq
string json = @"{ ""People"": { ""Simon"" : { Age: 25 }, ""Steve"" : { Age: 15 } } }";
var people = JsonConvert.DeserializeObject<JObject>(json)["People"];
var dict = people.Children()
.Cast<JProperty>()
.ToDictionary(p => p.Name, p => p.Value["Age"]);
string json=@“{”人“:{”西蒙“:{Age:25}”,“史蒂夫“:{Age:15}}}”;
var people=JsonConvert.DeserializeObject(json)[“people”];
var dict=people.Children()
.Cast()
.ToDictionary(p=>p.Name,p=>p.Value[“Age”]);
既然被接受的答案对我没有多大帮助,因为这是一个典型的用法“使用这个库更好!”我就明白了
对
返回一个JsonValue对象,该对象是System.Json中所有Json*类的基类。
当您调用JsonObject.Parse(..)时,由于继承,实际上正在调用JsonValue.Parse()
要迭代JsonObject,可以使用:
var jsonObject = JsonValue.parse(jsonString);
foreach (KeyValuePair<string, JsonValue> value in jsonObject)
{
Console.WriteLine("key:" + value.Key);
Console.WriteLine("value:" + value.Value);
}
这看起来是一个很好的信息,所以我没有投反对票,但他明确表示,他正在努力学习如何使用
System.Json
库进行操作。考虑到这个问题更多的是关于学习而不是解决问题,这并不能真正回答这个问题……虽然我不是被否决的选民,但我可以告诉你,你被否决的原因是,最初的问题是专门询问与System.Json有关的信息,而不是与Json.NET有关的信息。至于为什么你的答案被接受,即使它不是直接针对这个问题?嗯。
JsonObject.Parse(myJsonString);
var jsonObject = JsonValue.parse(jsonString);
foreach (KeyValuePair<string, JsonValue> value in jsonObject)
{
Console.WriteLine("key:" + value.Key);
Console.WriteLine("value:" + value.Value);
}
for (var i = 0; i < jsonObject.Count; i++)
{
Console.WriteLine("value:" + jsonObject[i]);
}
if (jsonObject.GetType() == typeof JsonObject){
//Iterate like an object
}else if (jsonObject.GetType() == typeof JsonArray){
//iterate like an array
}