文字列のJSON配列をどのように表現しますか?


183

これが有効なJSONに必要なすべてです。

["somestring1", "somestring2"]

6
これは、2つの文字列を含むJSON配列です。;)

私たちは皆が同意していることと矛盾する何かを読みました。だから、私はそこでリアリティチェックをしたかった。ありがとう!
finneycanhelp 2011年

4
ああ、なるほど!自分の質問を答えとして受け入れることができないのは残念です:D

:)まあ、それは楽しい答えだけではありません。このサイトを楽しい成功に導くのは、あなたのような素晴らしい人たちです!
finneycanhelp 2011年

回答:


297

ChrisRのすばらしい答えについてもう少し詳しく説明し、彼のすばらしい参照から画像を紹介します

有効なJSONは常に中かっこ{または角かっこ[で始まります。

{を開始しobjectます:

左中かっこの後にキー文字列(引用符で繰り返すことのできない名前)、コロンと値(以下に示す有効なタイプ)が続き、その後にオプションのカンマが続き、文字列と値のペアを自由に追加して、右中かっこ

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

ヒント:JavaScriptは単一引用符を受け入れますが'、JSONは二重引用符のみを受け入れます"

[を開始しarrayます:

左角かっこの後に値、オプションでコンマを追加して自由に値を追加し、右大かっこで終了

[value, value]

ヒント:要素間のスペースは、JSONパーサーによって常に無視されます。

そしてvalueあるobjectarraystringnumberboolまたはnull

JSON値が取り得る6つのタイプを示す画像:文字列、数値、JSONオブジェクト、配列/リスト、ブール値、およびnull

そうそう、マニッシュが指すリンクで試す["a", "b"]ことができるように、完全に有効なJSONです。

以下に、ブロックごとに1つ、追加の有効な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"]
}

22
素晴らしいUI表現
shridutt kothari 2015年

JSONには二重引用符が必要ですか?上記のOPの文字列を検証しようとしましたが、jsonlint.comで一重引用符を使用すると、無効であることがわかります。ただし、二重引用符を使用する場合は有効です。
Ray

@Rayはいつものように、単純な「はい」または「いいえ」の答えはありません。json.orgは二重引用符の使用についてのみ説明しており、ほとんどの場所はおそらくそれに従います。しかし、ここではそれについてのより深い調査があります:stackoverflow.com/a/2275428/274502
cregox

61

この場合のJSONオブジェクトはリストです。JSONはほとんどの場合、属性を持つオブジェクトです。1つ以上のキーと値のペアのセットなので、おそらく辞書が表示されます。

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

その後、次の値を求めることができる"MyStringArray"と次の2つの文字列のリストを取り戻すだろう、"somestring1""somestring2"


12
投稿したコード例は無効です。jsonとしてその文字列を解析しようとすると、エラー/例外がスローされます。JSONが常にキーと値のペアであると言うことも、本質的に間違っています。JSON仕様には、キーと値のペアが必要であるとは記載されていません。データ転送の話をすると、実際のキー/値のペアは、最も有用な構造ですが、OPが掲載さ文字列が完全に有効JSONです:codebeautify.org/jsonviewer/92ac7b
ChrisR

1
私は頭脳にAPIを持っていました。キーに基づいて配列の値を検索したいのです。したがって、名前のない配列の場合、{"1": "somestring1"、 "2": "somestring2"}
PapaSmurf

41

基本的にはい、JSONはあなたの値の単なるJavaScriptリテラル表現なので、あなたが言ったことは正しいです。

あなたはhttp://json.org/でJSON表記法のかなり明確で良い説明を見つけることができます


5
String strJson="{\"Employee\":
[{\"id\":\"101\",\"name\":\"Pushkar\",\"salary\":\"5000\"},
{\"id\":\"102\",\"name\":\"Rahul\",\"salary\":\"4000\"},
{\"id\":\"103\",\"name\":\"tanveer\",\"salary\":\"56678\"}]}";

これは、Employeeオブジェクトを含むJSON文字列の例であり、次に配列への参照として複数の文字列と値を@cregox...

少し複雑ですが、1つのJSON文字列で多くのことを説明できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.