我和json有点新鲜。所以我想在下面的数组值中创建一个数组值。
{
"id": 0,
"title": "LEVEL",
"value": [10[2,3,5], 1]
}
但不幸的是,它没有用。当我试图读取数据时,它给了我一个错误。
我想知道是否可以在数组值中包含数组。谢谢。
答案 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的样子:
这是结构应该是什么样的:
[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。这是最好的方法。如果这不是您想要的,那么您的图像就错了。您可以轻松修改数据结构以获得所需内容。