我的aJObject
等于:
"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);
有更好的办法吗?
最佳答案
在json中,对象本身没有名称。对象只是名称-值对集合的容器,以大括号开头和结尾。所以上面是一个较大的json体的片段。必须有一个外部对象来包含它。外部对象有一个名为Info
的属性,该属性的值是您所引用的对象。
{
"Info":
{
"View":"A",
"Product":"B",
"Offer":"Offer1",
"Demo":"body {background-color:red;} #box {border:dotted 50px red;}",
"Log":false
}
}
在json.net中,a
JObject
对json对象建模,aJProperty
对aJObject
中包含的名称-值对建模。每个JObject
都有一个JProperties
的子集合,而每个JProperty
都有一个Name
和一个单独的子集合,其Value
。因此,假设您有一个对最里面的
JObject
(包含View
、Product
和Offer
属性)的引用,您可以得到它包含的JProperty
的名称,如下所示:JProperty parentProp = (JProperty)jObject.Parent;
string name = parentProp.Name; // "Info"