[解決済み] ネストされたJSONオブジェクト - すべてに配列を使用しなければならないのか?
2022-05-17 10:33:39
質問
JSONでオブジェクトを入れ子にして、すべてを配列にする必要がないようにする方法はありますか? 私のオブジェクトがエラーなしでパースされるには、このような構造が必要なようです。
{"data":[{"stuff":[
{"onetype":[
{"id":1,"name":"John Doe"},
{"id":2,"name":"Don Joeh"}
]},
{"othertype":[
{"id":2,"company":"ACME"}
]}]
},{"otherstuff":[
{"thing":
[[1,42],[2,2]]
}]
}]}
このオブジェクトを "result" という変数に取り込むと、このようにネストされたオブジェクトにアクセスする必要があります。
result.data[0].stuff[0].onetype[0]
と
result.data[1].otherstuff[0].thing[0]
これは、私には不器用で冗長に見えます。可能であれば、私はそうしたいと思います。
result.stuff.onetype[0]
と
result.otherstuff.thing
しかし、すべてが配列であるときに、どうやってオブジェクトのキーを直接使うことができるのでしょうか?私の混乱した無学な頭には、このようなものがより適切に思えるのです。
{"data":
{"stuff":
{"onetype":[
{"id":1,"name": ""},
{"id":2,"name": ""}
]}
{"othertype":[
{"id":2,"xyz": [-2,0,2],"n":"Crab Nebula","t":0,"c":0,"d":5}
]}
}
{"otherstuff":
{"thing":
[[1,42],[2,2]]
}
}
}
私はおそらくここで何か根本的なことを誤解しているのですが、jQueryパーサー(jQuery1.4で使用されるネイティブFFパーサーも)が2番目のスタイルオブジェクトを受け入れるようにすることはできません。どなたかご教示いただけるとありがたいです。
どのように解決するのですか?
配列を使用する必要はありません。
JSONの値には、配列、オブジェクト、プリミティブ(数値や文字列)を使用することができます。
JSONはこのように書くことができます。
{
"stuff": {
"onetype": [
{"id":1,"name":"John Doe"},
{"id":2,"name":"Don Joeh"}
],
"othertype": {"id":2,"company":"ACME"}
},
"otherstuff": {
"thing": [[1,42],[2,2]]
}
}
このように使うことができます。
obj.stuff.onetype[0].id
obj.stuff.othertype.id
obj.otherstuff.thing[0][1] //thing is a nested array or a 2-by-2 matrix.
//I'm not sure whether you intended to do that.
関連
-
[解決済み] オブジェクトのためのマップ関数(配列の代わりに)
-
[解決済み] Jackson を使用してオブジェクトの配列をデシリアライズする方法
-
[解決済み] 2つのJavaScriptオブジェクトの等質性を判断する方法は?
-
[解決済み] JSON APIのレスポンス形式には規格がありますか?
-
[解決済み] JavaScript のネストしたオブジェクトや配列に文字列パスでアクセスする
-
[解決済み] JSONオブジェクトに末尾のカンマを使用することは可能ですか?
-
[解決済み】ネストされたJavaScriptオブジェクトのキーが存在するかどうかをテストする
-
[解決済み] WebpackでjQueryを本物のWindowオブジェクトに公開する
-
[解決済み] DataURLからBlob?
-
[解決済み] AngularJS - $http.postがJSONの代わりにリクエストパラメータを送信する方法はありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] AngularJSのエラーです。Cross Origin リクエストはプロトコルスキーム http, data, chrome-extension, https に対してのみサポートされています。
-
[解決済み] 上級者向けJavaScript。この関数はなぜ括弧でくくられるのですか?重複
-
[解決済み] <noscript> の反対語のHTMLはありますか?
-
[解決済み] event.targetを使用して、要素の親要素をターゲットにすることができますか?
-
[解決済み] selectタグのngModelの変更を検出する方法(Angular 2)?
-
[解決済み] jQuery UI - 外でクリックされたらダイアログを閉じる
-
[解決済み] javascriptからフィールドを無効とすることはできますか?
-
[解決済み] ネストしたオブジェクトのプロパティを動的に設定する
-
[解決済み] JavaScriptでクエリ文字列が存在するかどうかを確認するには?
-
[解決済み] Angularで、配列内のオブジェクトを検索したい。