JObject嵌套属性

时间:2015-05-08 14:22:57

标签: c# json json.net

我试图用JObject创建一个这样的json对象:

{
    "input": {
        "webpage/url": "http://google.com/"
    }
}

我可以添加以下属性:

JObject job = new JObject(
                new JProperty("website/url", "http://www.google.com") );

但是每当我尝试将一个对象嵌套在另一个对象中时,我就可以让父对象输入"它引发了一个例外。

如何使用JObject创建嵌套属性?

2 个答案:

答案 0 :(得分:14)

可能最简单的方法是:

var input = new JObject();

input.Add("webpage/url", "http://google.com");

var obj = new JObject();

obj.Add("input", input);

这给了你:

{
  "input": {
    "webpage/url": "http://google.com"
  }
}

另一种方式是:

var input = new JObject
{
    { "webpage/url", "http://google.com" }
};

var obj = new JObject
{
    { "input", input }
};

...或者如果您想在一个声明中完成所有内容:

var obj = new JObject
{
    {
        "input",
        new JObject
        {
            { "webpage/url", "http://google.com" }
        }
    }
};

答案 1 :(得分:5)

坚持不懈,将它们嵌套在另一个层面:

JObject job = new JObject(
                new JProperty("website/url", "http://www.google.com") );

JObject parent = new JObject(new JProperty("input", job));

parent.ToString()现在给出:

  

{“input”:{       “website / url”:“http://www.google.com”}}