我对json有点陌生。所以我想在一个数组的值内创建一个数组值,如下所示。
{
"id": 0,
"title": "LEVEL",
"value": [10[2,3,5], 1]
}
但不幸的是它不起作用。当我尝试读取数据时,它给了我一个错误。
我想知道是否可以在数组值中包含一个数组。谢谢你。
{
"id": 0,
"title": "LEVEL",
"value": [10, [2, 3, 5], 1]
}
选项2:
{
"id": 0,
"title": "LEVEL",
"value": [10, {
"someKey": [2, 3, 5]
}, 1]
}
选项3:
{
"id": 0,
"title": "LEVEL",
"value": [10, {
"someKey": [2, {
"someKey": [9, 1, 1]
}, 5]
}, 1]
}
我总是建议人们创建一个类并从中生成 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);
生成的 Json 结果来自Debug.Log
:
{"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 的。这是最好的方法。如果这不是您想要的,那么您的图像是错误的。您可以轻松修改数据结构以获得所需的内容。