我试图通过简单地执行以下操作来反序列化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对象所以问题是..我如何得到我真正想要的那种行为?或者我错过了什么?
答案 0 :(得分:0)
要访问JObject中的值,我使用JToken:
JToken child = jObject["myjson"];
如果要检索字符串中的值,可以序列化JToken
string childInString = JsonConvert.SerializeObject(child);
希望有所帮助。