【问题标题】:How do you represent a JSON array of strings?你如何表示一个 JSON 字符串数组?
【发布时间】:2011-07-14 16:38:58
【问题描述】:

这就是有效 JSON 所需的全部内容,对吧?

["somestring1", "somestring2"]

【问题讨论】:

  • 这是一个包含两个字符串的 JSON 数组,是的……这个问题还有更多吗? ;)
  • 我读到了一些与我们都同意的内容相矛盾的东西。所以,我想在那里进行现实检查。谢谢!
  • 啊,我明白了!很遗憾您不能接受自己的问题作为答案:D
  • :) 好吧,有趣的不仅仅是答案。正是像您这样的优秀人才帮助这个网站取得了有趣的成功!

标签: json


【解决方案1】:

我会详细说明ChrisR awesome answer 并从他的awesome reference 中获取图片。

有效的 JSON 总是以花括号 { 或方括号 [ 开头,仅此而已。

{ 将启动 object:

{ "key": value, "another key": value }

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

[ 将启动 array:

[value, value]

提示:任何 JSON 解析器始终忽略元素之间的空格。

valueobjectarraystringnumberboolnull

是的,["a", "b"] 是一个完全有效的 JSON,就像你可以使用 try on the link Manish pointed

这里有一些额外的有效 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"]
}

【讨论】:

  • 这么棒的 UI 表示
  • JSON 必须有双引号吗?我试图验证上面的 OP 字符串,但在 jsonlint.com 上使用单引号,它告诉我它是无效的。但在使用双引号时有效。
  • @Ray 像往常一样,没有简单的是或否的答案,尽管我想说它主要是“是的,只是用双引号”。 json.org 只告诉我们使用双引号,大多数地方可能会遵循这一点。然而,这里有一个更深入的调查:stackoverflow.com/a/2275428/274502
  • 请为 SO 的黑暗主题改进图像。
  • @carloswm85 我会把它留给你!随时编辑答案。 ?(我没有台式机,不知道在哪里设置深色主题,也不在乎......?)
【解决方案2】:

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

{ "MyStringArray" : ["somestring1", "somestring2"] }

然后你可以询问"MyStringArray" 的值,你会得到一个包含两个字符串的列表,"somestring1""somestring2"

【讨论】:

  • 您发布的代码示例无效,当您尝试将该字符串解析为 json 时,它会引发错误/异常。您说 JSON 始终是键/值对的事实本身也是错误的。 JSON 规范中没有任何内容表明您需要拥有键/值对。在谈论数据传输时,确实键/值对是最有用的结构,但 OP 发布的字符串是完全有效的 JSON:codebeautify.org/jsonviewer/92ac7b
  • 我的大脑中有 API,您想在其中根据键查找数组中的值。因此,对于未命名的数组,{"1":"somestring1", "2":"somestring2"}
【解决方案3】:

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

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

【讨论】:

    【解决方案4】:
    String strJson="{\"Employee\":
    [{\"id\":\"101\",\"name\":\"Pushkar\",\"salary\":\"5000\"},
    {\"id\":\"102\",\"name\":\"Rahul\",\"salary\":\"4000\"},
    {\"id\":\"103\",\"name\":\"tanveer\",\"salary\":\"56678\"}]}";
    

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

    有点复杂,但可以用一个 JSON 字符串解释很多内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-25
      • 2018-06-14
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      • 2022-10-05
      • 1970-01-01
      • 2020-03-13
      相关资源
      最近更新 更多