是否可以嵌套数组json?

时间:2017-07-28 05:37:23

标签: json unity3d litjson

我和json有点新鲜。所以我想在下面的数组值中创建一个数组值。

{
    "id": 0,
    "title": "LEVEL",
    "value": [10[2,3,5], 1]
}

但不幸的是,它没有用。当我试图读取数据时,它给了我一个错误。

我想知道是否可以在数组值中包含数组。谢谢。

2 个答案:

答案 0 :(得分:2)

{
"id": 0,
"title": "LEVEL",
"value": [10, [2, 3, 5], 1]

}

选项2:

    {
    "id": 0,
    "title": "LEVEL",
    "value": [10, {
        "someKey": [2, 3, 5]
    }, 1]
}

2选项:

       {
    "id": 0,
    "title": "LEVEL",
    "value": [10, {
        "someKey": [2, {
            "someKey": [9, 1, 1]
        }, 5]
    }, 1]
   }

答案 1 :(得分:2)

我总是建议人们创建一个类并从中生成json,而不是试图从头部构造json。如果你这样做会更容易,生成的json总是有效的,并且是你想要的。

这就是你想要json的样子:

enter image description here

这是结构应该是什么样的:

[Serializable]
public class Dialog
{
    public Human human;
    public NonHuman nonHuman;
}

[Serializable]
public class Human
{
    public Inner inner;
    public Outer outer;
}

[Serializable]
public class NonHuman
{
    public string val;
}

[Serializable]
public class Inner
{
    public string[] val;
}

[Serializable]
public class Outer
{
    public string[] val;
}

现在,让我们重新创建截屏中的内容:

//Create new dialog
Dialog dialog = new Dialog();

//Create nonhuman
dialog.nonHuman = new NonHuman();
dialog.nonHuman.val = "Once upon a time...";

//Create human
dialog.human = new Human();

//Create human inner 
dialog.human.inner = new Inner();
dialog.human.inner.val = new string[2];
dialog.human.inner.val[0] = "He is so scary";
dialog.human.inner.val[1] = "She is so beautiful";

//Create human outer 
dialog.human.outer = new Outer();
dialog.human.outer.val = new string[2];
dialog.human.outer.val[0] = "Hey watch out !";
dialog.human.outer.val[1] = "Look at her har !";

//Convert to Json
string json = JsonUtility.ToJson(dialog);
//Show result in the Console tab
Debug.Log(json);

Debug.Log生成的Json结果:

{"human":{"inner":{"val":["He is so scary","She is so beautiful"]},"outer":{"val":["Hey watch out !","Look at her har !"]}},"nonHuman":{"val":"Once upon a time..."}}

通过创建截图中的内容的数据结构,然后创建新的实例,了解如何生成有效的json。这是最好的方法。如果这不是您想要的,那么您的图像就错了。您可以轻松修改数据结构以获得所需内容。