我有一个字符串化的json对象,我使用JObject.Parse
解析并得到下面的结果-
{{
"payload": {
"firstName": "John",
"lastName": "Doe"
}
}}
这是我的输入 -
"{ rn"payload": {rnt"firstName":"John", rnt"lastName": "Doe"rn }}"
额外的括号是开始,结束由解析器添加。我想遍历此对象并显示名字和姓氏的键值。
foreach (var property in jobject)
{
Console.WriteLine(" {0}: {1}", property.Name, property.Value);
}
但是,我不知道由于两个括号或由于嵌套结构,我无法进入内部属性。我尝试了一种递归方法来解析 json,但还没有成功。有人可以帮我吗?
如果你也想迭代所有嵌套对象,你可以做这样的事情:
var p = JObject.Parse(...);
foreach (var a in p.DescendantsAndSelf())
{
if (a is JObject obj)
foreach (var prop in obj.Properties())
if (!(prop.Value is JObject) && !(prop.Value is JArray))
Console.WriteLine(" {0}: {1}", prop.Name, prop.Value);
}
可以使用 LINQ 访问对象。如果不好,请将解析对象的部分添加到问题中。
yourobj["payload"].ToObject<YourObject>()