我的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中,aJObject对json对象建模,aJProperty对aJObject中包含的名称-值对建模。每个JObject都有一个JProperties的子集合,而每个JProperty都有一个Name和一个单独的子集合,其Value
因此,假设您有一个对最里面的JObject(包含ViewProductOffer属性)的引用,您可以得到它包含的JProperty的名称,如下所示:
JProperty parentProp = (JProperty)jObject.Parent;
string name = parentProp.Name;  // "Info"

07-28 02:12
查看更多