C# 如何访问JObject的子项值
我有一个JObject项,它如下所示:C# 如何访问JObject的子项值,c#,json.net,C#,Json.net,我有一个JObject项,它如下所示: { "part": { "values": ["engine","body","door"] "isDelivered": "true" }, { "manufacturer": { "values": ["Mercedes"] "isDelivered
{
"part":
{
"values": ["engine","body","door"]
"isDelivered": "true"
},
{
"manufacturer":
{
"values": ["Mercedes"]
"isDelivered": "false"
}
}
如何在C#中以单个字符串的形式获取值?首先从字符串创建JObject
String json = "{\"part\":{ \"values\": [\"engine\",\"body\",\"door\"], \"isDelivered\": \"true\"},\"manufacturer\":{\"values\": [\"Mercedes\"],\"isDelivered\": \"false\"}}";
JObject jObject = JObject.Parse(json);
然后获取数组中的值(例如,从零件中获取)
将字符串的JArray转换为字符串数组
string[] valuesArray = jArray.ToObject<string[]>();
完整代码在这里
String json = "{\"part\":{ \"values\": [\"engine\",\"body\",\"door\"], \"isDelivered\": \"true\"},\"manufacturer\":{\"values\": [\"Mercedes\"],\"isDelivered\": \"false\"}}";
JObject jObject = JObject.Parse(json);
JArray jArray= (JArray)jObject["part"]["values"];
string[] valuesArray = jArray.ToObject<string[]>();
String values = string.Join(",",valuesArray);
Console.WriteLine(values);
String json=“{\'part\':{\'values\':[\'engine\',\'body\',\'door\'],\'isDelivered\':\'true\'},\'manufacturer\':{\'values\':[\'Mercedes\'],\'isDelivered\':'false\};
JObject=JObject.Parse(json);
JArray JArray=(JArray)jObject[“部分”][“值”];
字符串[]值array=jArray.ToObject();
字符串值=String.Join(“,”,valuesArray);
控制台写入线(值);
首先,json的格式不正确,应该是:
{
"part":
{
"values": ["engine","body","door"],
"isDelivered": "true"
},
"manufacturer":
{
"values": ["Mercedes"],
"isDelivered": "false"
}
}
现在,得到答案,我相信这就是你想要的
var jObject = JObject.Parse(testJson);
var children = jObject.Children().Children();
var valuesList = new List<string>();
foreach (var child in children)
{
valuesList.AddRange(child["values"].ToObject<List<string>>());
}
var valuesJsonArray = JsonConvert.SerializeObject(valuesList); // not sure if you want an array of strings or a json array of strings
var jObject=jObject.Parse(testJson);
var children=jObject.children().children();
var valuesList=新列表();
foreach(儿童中的儿童变量)
{
valuesList.AddRange(子[“值”].ToObject());
}
var valuesJsonArray=JsonConvert.SerializeObject(valuesList);//不确定是要字符串数组还是json字符串数组
您希望如何组合这些项目?例如,逗号分隔?您的意思是希望所有对象的所有值,或者像
part>values
和manufacturer>values
一样作为单独的值字符串?谢谢您的快速响应。我想保存键,例如part,然后保存下面的值,因为它们位于行中,即一个简单的数组。我仍然不清楚这个问题。你能告诉我输出应该是怎样的吗?
{
"part":
{
"values": ["engine","body","door"],
"isDelivered": "true"
},
"manufacturer":
{
"values": ["Mercedes"],
"isDelivered": "false"
}
}
var jObject = JObject.Parse(testJson);
var children = jObject.Children().Children();
var valuesList = new List<string>();
foreach (var child in children)
{
valuesList.AddRange(child["values"].ToObject<List<string>>());
}
var valuesJsonArray = JsonConvert.SerializeObject(valuesList); // not sure if you want an array of strings or a json array of strings