繁体   English   中英

在Json.Net中获取JObject的名称

[英]Get the name of a JObject in Json.Net

我有一个等于的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);

有一个更好的方法吗?

在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 (包含ViewProductOffer属性)的引用,您可以像这样获取其包含JProperty的名称:

JProperty parentProp = (JProperty)jObject.Parent;
string name = parentProp.Name;  // "Info"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM