Newtonsoft Json反序列化,JProperty和JObjects?

时间:2013-02-12 15:41:23

标签: c# .net json.net

我试图通过简单地执行以下操作来反序列化json-text /字符串:

var jObject = JsonConvert.DeserializeObject<JObject>(myjsonstring);

事情是我后来需要遍历jObject ...因为我稍后将使用特殊格式将其“序列化”回XML。但是这个反序列化为json中的每个“节点”提供了一个JProperty和一个JObject。有没有办法告诉序列化程序我只是对JP或者JObject的内容。

=============

修改

要解释它更多.. 问题是如果我以后会在VS-watch中键入以下内容:

jObject

它会给出结果:

{ "myjson":{ "mytest":"myvalue" } }

并且

jObject.Children().First()

会从手表中给出以下结果/响应:

{"myjson":{ "mytest":"myvalue" } }

但我认为更符合逻辑的结果/响应是:

{ "mytest":"myvalue" }

因为那是“myjson”属性的实际Child对象所以问题是..我如何得到我真正想要的那种行为?或者我错过了什么?

1 个答案:

答案 0 :(得分:0)

要访问JObject中的值,我使用JToken:

JToken child = jObject["myjson"];

如果要检索字符串中的值,可以序列化JToken

string childInString = JsonConvert.SerializeObject(child);

希望有所帮助。