我在这里尝试过一些例子,但是我的头发已经撕掉了。
我做了一个查询,它返回JSON,在JSON中有很多哈希,例如。
{ "gjwiegjeigj": { ....}, "gjeeigjwoeigj": {...} ... }
我想遍历其中的每一个,并将内容反序列化为一个对象。
我已经创建了对象myObject,其中包含所有字段,但我仍然坚持反序列化。
我可以使用JsonConvert.DeserializeObject
直接从基础对象反序列化,但我不能这样做,我需要循环并对孩子们这样做。
我想要一个自定义对象的数组,其中包含从Json中获取的所有字段,我不关心每个字段的标题(垃圾哈希)。
有什么想法吗?我知道我可以循环,这给了我很多JTokens,但这就是我被卡住的地方。
答案 0 :(得分:0)
编辑:再次阅读您的问题,您提及了解并且不知道所有字段。听起来你真的不知道JSON字符串将包含哪些字段。
对于这样的情况,我建议您使用dynamic
- 这是它闪耀的地方。如果您确实知道所有字段名称,那么您的类应该反序列化而不会出现任何问题。
你有什么尝试?向我们展示一些真实的代码,以及真正的异常或问题。
要反序列化为动态对象列表很简单:
dynamic toReturn = JsonConvert.DeserializeObject<List<dynamic>>(rawJson);
您应该返回动态对象列表。你可以为你想要的字段戳它:
Console.WriteLine(toReturn.First().gjwiegjeigj);
答案 1 :(得分:0)
所以我想通了,基本上是从集合JToken
得到的,这是我在JSON对象上遍历.Children()
时得到的,我可以将它转换为{{1并且JProperty
获取名称或.Name
获取值,或者我可以直接反序列化为对象,基本上是这样的:
.Value
然后我不知道需要知道我反序列化的属性的名称。