[解決済み] Javascript による JSON 配列のパース方法
2022-11-01 14:11:40
質問
Sencha Touch(ExtJS)を使って、サーバーからJSONメッセージを取得しています。私が受け取るメッセージは、このようなものです。
{
"success": true,
"counters": [
{
"counter_name": "dsd",
"counter_type": "sds",
"counter_unit": "sds"
},
{
"counter_name": "gdg",
"counter_type": "dfd",
"counter_unit": "ds"
},
{
"counter_name": "sdsData",
"counter_type": "sds",
"counter_unit": " dd "
},
{
"counter_name": "Stoc final",
"counter_type": "number ",
"counter_unit": "litri "
},
{
"counter_name": "Consum GPL",
"counter_type": "number ",
"counter_unit": "litri "
},
{
"counter_name": "sdg",
"counter_type": "dfg",
"counter_unit": "gfgd"
},
{
"counter_name": "dfgd",
"counter_type": "fgf",
"counter_unit": "liggtggggri "
},
{
"counter_name": "fgd",
"counter_type": "dfg",
"counter_unit": "kwfgf "
},
{
"counter_name": "dfg",
"counter_type": "dfg",
"counter_unit": "dg"
},
{
"counter_name": "gd",
"counter_type": "dfg",
"counter_unit": "dfg"
}
]
}
私の問題は、このJSONオブジェクトをパースして、各カウンターオブジェクトを使用できるようにできないことです。
私は次のようにそれを達成しようとしています。
var jsonData = Ext.util.JSON.decode(myMessage);
for (var counter in jsonData.counters) {
console.log(counter.counter_name);
}
私は何を間違っているのですか? ありがとうございます。
どのように解決するのですか?
Javascriptには、文字列のJSONパースが組み込まれており、それがあなたの持っているものだと思います。
var myObject = JSON.parse("my json string");
を例にとると、このようになります。
var jsonData = JSON.parse(myMessage);
for (var i = 0; i < jsonData.counters.length; i++) {
var counter = jsonData.counters[i];
console.log(counter.counter_name);
}
EDIT : forループの使い方に間違いがあります。(私は最初に読んだときにこれを見逃しました。正しい使用法については、上記の私の更新されたループを参照してください。
重要
: この
JSON.parse
メソッドは古い古いブラウザでは動作しません。ですから、もしあなたのウェブサイトをある種の時間の止まったインターネット接続を通して利用可能にしようと計画しているなら、これは問題かもしれません もし本当に興味があるのなら
サポートチャートはこちらです。
(これは私の要求をすべて満たしています)。
関連
-
[解決済み] 正しいJSONコンテンツタイプは何ですか?
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JSONでコメントを使用することはできますか?
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] JavaScriptでJSONをきれいに印刷する
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
-
[解決済み] なぜJavaScriptでは!{}[true]がtrueに評価されるのですか?
-
[解決済み] オブジェクトの配列からReactコンポーネントをレンダリングする
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] JSON文字列を安全にオブジェクトに変換する
-
[解決済み] JavaScript で範囲を作成する - 奇妙な構文
-
[解決済み] jqueryでdivの要素がオーバーフローしていないかチェックする
-
[解決済み] モバイルWeb HTML5フレームワークの選び方【終了しました
-
[解決済み] bootstrap のポップオーバーがすべての要素の上に表示されない
-
[解決済み] CORS OriginヘッダーとCSRFトークンによるCSRF保護
-
[解決済み] AngularJS - ngRepeatフィルタリングされた結果の参照を取得する方法
-
[解決済み] $.ajax実行中にローディングイメージを表示する
-
[解決済み] CORS: 認証モードは 'include' です。
-
[解決済み] jQueryのバージョン1、バージョン2、バージョン3の違いは何ですか?[クローズド]