我的JObject
等于:
"Info":
{
"View":"A",
"Product":"B",
"Offer":"Offer1",
"Demo":"body {background-color:red;} #box {border:dotted 50px red;}",
"Log":false
}
如何返回对象的名称“Info”?
我目前正在使用Path
属性,如下所示:
jObject.Name = jObject.Path.Substring(jObject.Path.jObject('.') + 1);
有更好的方法吗?
答案 0 :(得分:10)
在JSON中,对象本身没有名称。对象只是一个名称 - 值对集合的容器,以花括号开头和结尾。所以你上面所拥有的是一个更大的JSON体系的片段。必须有一个外部对象来包含它。该外部对象具有名称为Info
的属性,该属性的值是您引用的对象。
{
"Info":
{
"View":"A",
"Product":"B",
"Offer":"Offer1",
"Demo":"body {background-color:red;} #box {border:dotted 50px red;}",
"Log":false
}
}
在Json.Net中,JObject
模拟JSON对象,JProperty
模拟JObject
中包含的名称 - 值对。每个JObject
都有一个JProperties
的集合,它们是其子集,而每个JProperty
都有一个Name
和一个子集Value
。
因此,假设您引用了最里面的JObject
(包含View
,Product
和Offer
属性),您可以获取其包含的{{ {1}}像这样:
JProperty