C# 用C解析JSON对象内部的数组#
我试图解析json对象内部的数组,但它不起作用,下面是代码:C# 用C解析JSON对象内部的数组#,c#,json,C#,Json,我试图解析json对象内部的数组,但它不起作用,下面是代码: public void JsonParserPersonal(string file) { string fullname; string email; var json = System.IO.File.ReadAllText(file); var objects = JObject.Parse(json);
public void JsonParserPersonal(string file)
{
string fullname;
string email;
var json = System.IO.File.ReadAllText(file);
var objects = JObject.Parse(json);
var arrays = JArray.FromObject(json);
fullname = (string)objects["NameComponents"]["FullName"];
email = (string)arrays["EmailAddresses"]["ItemValue"];
SearchReplacePersonal(fullname, email);
}
以下是JSON数据:
{
"NameComponents": {
"FullName": "XXX"
},
"EmailAddresses": [
{
"IsPersonal": true,
"IsBusiness": false,
"FieldName": "Email1Address",
"DisplayTitle": "Email",
"ItemValue": "xxx@yyy.com"
}
]
}
我只想在“EmailAddresses”中获取“ItemValue”。
当我运行此代码时,得到的错误如下:
System.ArgumentException:'对象序列化为字符串。需要JArray实例。“
我正在使用VisualStudio2019
谢谢 访问
JArray
时,您应该指定索引
var objects = JObject.Parse(json);
var jarray = objects["EmailAddresses"];
Console.WriteLine((string)objects["NameComponents"]["FullName"]);
Console.WriteLine((string)jarray[0]["ItemValue"]);
或者迭代JArray
foreach(var item in jarray)
{
foreach(JProperty property in item.Children())
{
Console.WriteLine($"{property.Name} - {property.Value}");
}
}
访问
JArray
时,应指定索引
var objects = JObject.Parse(json);
var jarray = objects["EmailAddresses"];
Console.WriteLine((string)objects["NameComponents"]["FullName"]);
Console.WriteLine((string)jarray[0]["ItemValue"]);
或者迭代JArray
foreach(var item in jarray)
{
foreach(JProperty property in item.Children())
{
Console.WriteLine($"{property.Name} - {property.Value}");
}
}
不需要解析数组-可以是
var jarray=objects[“EmailAddresses”]代码>感谢@stuartd的发现。已经更新了后排列数组是不必要的-可以是var jarray=objects[“EmailAddresses”]代码>感谢@stuartd的发现。我已经更新了帖子