获取 JObject 的名称 Json.Net

本文关键字:Json Net JObject 获取 | 更新日期: 2023-09-27 18:06:31

我的JObject等于:

"Info":
{
    "View":"A",
    "Product":"B",
    "Offer":"Offer1",
    "Demo":"body {background-color:red;} #box {border:dotted 50px red;}",
    "Log":false
}

如何返回对象的名称"信息"?

我目前正在使用 Path 属性,如下所示:

jObject.Name = jObject.Path.Substring(jObject.Path.jObject('.') + 1);

有没有更好的方法可以做到这一点?

获取 JObject 的名称 Json.Net

在 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"