你如何表示字符串的JSON数组?

fin*_*elp 166 json

这就是有效JSON所需要的,对吧?

["somestring1", "somestring2"]
Run Code Online (Sandbox Code Playgroud)

cre*_*gox 283

我将详细介绍ChrisR非常棒的答案,并从他精彩的参考文献中提取图像.

有效的JSON始终以花括号{或方括号开头[,没有别的.

{将开始object:

左大括号后跟一个键字符串(一个不能重复的名称,引号),冒号和一个值(下面显示的有效类型),后跟一个可选的逗号,可以随意添加更多的字符串和值对并完成右支撑

{ "key": value, "another key": value }
Run Code Online (Sandbox Code Playgroud)

提示:虽然javascript接受单引号',但JSON只接受双引号".

[将开始array:

左括号后跟值,可选逗号可随意添加更多值,并以右括号结束

[value, value]
Run Code Online (Sandbox Code Playgroud)

提示:任何JSON解析器都会忽略元素之间的空格.

而且valueobject,array,string,number,boolnull:

显示JSON值的6种类型的图像可以是:字符串,数字,JSON对象,数组/列表,布尔值和空值

所以,是的,["a", "b"]是一个完全有效的JSON,就像你可以尝试Manish指向的链接.

以下是一些额外有效的JSON示例,每个块一个:

{}

[0]

{"__comment": "json doesn't accept comments and you should not be commenting even in this way", "avoid!": "also, never add more than one key per line, like this"}

[{   "why":null} ]

{
  "not true": [0, false],
  "true": true,
  "not null": [0, 1, false, true, {
    "obj": null
  }, "a string"]
}
Run Code Online (Sandbox Code Playgroud)

  • 令人敬畏的UI表示 (17认同)

小智 54

在这种情况下,您的JSON对象是一个列表.JSON几乎总是一个具有属性的对象; 一组一个或多个键:值对,因此您很可能会看到一个字典:

{ "MyStringArray" : ["somestring1", "somestring2"] }
Run Code Online (Sandbox Code Playgroud)

然后你可以要求价值,"MyStringArray"你会得到两个字符串的列表,"somestring1""somestring2".

我使用http://jsonlint.com/来验证我的JSON.

  • 您发布的代码示例无效,当您尝试将该字符串解析为json时,它将抛出错误/异常.你说JSON总是键/值对的事实本质上也是错误的.JSON规范中没有任何内容表明您需要拥有键/值对.在讨论数据传输时,确实键/值对是最有用的结构,但OP发布的字符串是完全有效的JSON:http://codebeautify.org/jsonviewer/92ac7b (12认同)

Chr*_*isR 41

基本上是的,JSON只是你的价值的javascript文字表示,所以你说的是正确的.

您可以在http://json.org/上找到关于JSON表示法的非常明确和良好的解释


小智 6

String strJson="{\"Employee\":
[{\"id\":\"101\",\"name\":\"Pushkar\",\"salary\":\"5000\"},
{\"id\":\"102\",\"name\":\"Rahul\",\"salary\":\"4000\"},
{\"id\":\"103\",\"name\":\"tanveer\",\"salary\":\"56678\"}]}";
Run Code Online (Sandbox Code Playgroud)

这是一个带有Employeeas对象的JSON字符串的示例,然后是数组中的多个字符串和值作为对@cregox... 的引用

有点复杂,但可以在单个JSON字符串中解释很多.