有JObject Vs的JArray处理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有JObject Vs的JArray处理相关的知识,希望对你有一定的参考价值。
我有接收到该参数的方法:
List<QueueItem> signups
这是类:
public class QueueItem
public string Everything get; set; //all the fields in one string
...
一切都从这样的键值对对象的所有领域的串...
[
"Key": "Partner",
"Value": "Place"
,
"Key": "FIRST_NAME",
"Value": "John"
,
"Key": "last_name",
"Value": "Smith"
]
但是,这条线......
var result = signups.Select(x => JsonConvert.DeserializeObject<JObject>(x.Everything));
与此错误消息回来:
“无法转换类型‘Newtonsoft.Json.Linq.JArray’的目的为类型‘Newtonsoft.Json.Linq.JObject’”
我见过的解决方案是无法投射到JObject并把它作为JArray但这需要改变哪些检查JObject具体的东西像属性()等方法其余的我很想能够处理JSON作为一个JObject并保留一切不变。是否有一个有效的方式来做到这一点?
因为后来我不断地检查JObject这样的特定属性...
var Properties = result.Select(x => x.Properties()).ToArray();
答案
怎么样反序列化直为List<KeyValuePair<string, string>>
:
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");
以上是关于有JObject Vs的JArray处理的主要内容,如果未能解决你的问题,请参考以下文章
JObject 用法 JProperty 用法JArray 用法 Linq 转 Json
如何将 JArray 的所有元素添加到 C# 中的 JObject?
无法将“Newtonsoft.Json.Linq.JObject”类型的对象强制转换为“Newtonsoft.Json.Linq.JArray”