Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何访问JObject的子项值_C#_Json.net - Fatal编程技术网

C# 如何访问JObject的子项值

C# 如何访问JObject的子项值,c#,json.net,C#,Json.net,我有一个JObject项,它如下所示: { "part": { "values": ["engine","body","door"] "isDelivered": "true" }, { "manufacturer": { "values": ["Mercedes"] "isDelivered

我有一个JObject项,它如下所示:

{

        "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