Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.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 vs JArray_C#_Json - Fatal编程技术网

C# 处理JObject vs JArray

C# 处理JObject vs JArray,c#,json,C#,Json,我有一个接收此参数的方法: List<QueueItem> signups 所有内容都有一个字符串,其中包含来自键值对对象的所有字段,如下所示 var Properties = result.Select(x => x.Properties()).ToArray(); [{ “密钥”:“合作伙伴”, “价值”:“地点” }, { “密钥”:“名字”, “价值”:“约翰” }, { “密钥”:“姓氏”, “价值”:“史密斯” }] 但是这一行 var result = si

我有一个接收此参数的方法:

List<QueueItem> signups
所有内容都有一个字符串,其中包含来自键值对对象的所有字段,如下所示

var Properties = result.Select(x => x.Properties()).ToArray();
[{
“密钥”:“合作伙伴”,
“价值”:“地点”
}, {
“密钥”:“名字”,
“价值”:“约翰”
}, {
“密钥”:“姓氏”,
“价值”:“史密斯”
}]
但是这一行

var result = signups.Select(x => JsonConvert.DeserializeObject<JObject>(x.Everything));

直接反序列化到
列表如何

var pairs=JsonConvert.DeserializeObject(x.Everything);
foreach(成对的var kvp)
{
WriteLine($“Key:{kvp.Key}”);
WriteLine($“Value:{kvp.Value}”);
}

我会根据需要使用并强制转换生成的
JToken
JToken
JObject
JArray
的基类。不过Parse将json作为字符串。这是一个对象列表,其中包含一个包含所有字段的字符串。我不需要先反序列化Object()吗?这又回到了原来的问题?请在您的问题中加入一个示例,说明
所有内容中的内容。基本上,如果您能够成功地执行
反序列化(x.Everything)
,您就可以成功地执行
JToken.Parse(x.Everything)
,并获得类似的结果。我刚刚添加了所有内容。好吧,这应该反序列化到
JArray
,正如错误所提示的那样(那里有
[]
的提示)。由于数组没有任何真正有趣的属性,您可能需要遍历
JArray
,才能从中获得乐趣。在不知道您试图对结果执行什么操作的情况下,很难回答这个问题。但是,键值对对象的.Properties()等效于什么?@John编辑了一个访问键值对属性的示例
var Properties = result.Select(x => x.Properties()).ToArray();
var pairs = JsonConvert.DeserializeObject<List<KeyValuePair<string, string>>>(x.Everything);
foreach(var kvp in pairs)
{
    Console.WriteLine($"Key: {kvp.Key}");
    Console.WriteLine($"Value: {kvp.Value}");
}