2017-10-23 6 views
-1

私はこのjsonをサーバーから解析しようとしています。私はJSON.parseを使用しました。以下は終了結果です。このjsonを別の文字列に解析するにはどうすればよいですか?

[{"cols":[{"label":"ID","type":"string"},{"label":"LICENSE","type":"string"},{"label":"MAKE","type":"string"},{"label":"MODEL","type":"string"},{"label":"COLOR","type":"string"}],"rows":[{"c":[{"v":"12345"},{"v":"ABC123"},{"v":"CHEVROLET"},{"v":"CAVALIER"},{"v":"RED"}]}]},{"cols":[{"label":"YEAR","type":"string"},{"label":"NUMBER","type":"string"},{"label":"DISABILITY","type":"string"}],"rows":[]},{"cols":[{"label":"LICENSE","type":"string"},{"label":"MAKE","type":"string"},{"label":"MODEL","type":"string"},{"label":"COLOR","type":"string"},{"label":"ACTIVE","type":"string"}],"rows":[{"c":[{"v":"111"},{"v":"ACURA"},{"v":"111"},{"v":"BEIGE"},{"v":"N"}]},{"c":[{"v":"11112"},{"v":"ACURA"},{"v":"11"},{"v":"BLACK"},{"v":"N"}]},{"c":[{"v":"ABC1234"},{"v":"CHEVROLET"},{"v":"CAVALIER"},{"v":"RED"},{"v":"Y"}]},{"c":[{"v":"ABC1234"},{"v":null},{"v":null},{"v":null},{"v":"N"}]}]}] 

私の目標は、別の関数に送信するためにそれ自身の文字列にそれに関連する「行」と3「COLS」のそれぞれを引っ張っています。だから私はほとんど次のようなことを言いたいと思っています:

var part1 = thisJsonObject[0]; 
var part2 = thisJsonObject[1]; 
var part3 = thisJsonObject[2]; 

しかし、私はエラーが発生しています。このjson文字列を3つの別々のjson文字列に構文解析する方法に関するアイデアはありますか?

私はこれをアプリケーションのI/Oを減らすために行っていますので、パフォーマンスを向上させるために複数回ではなく1回の要求で済みます。

ありがとうございます!

----更新-----

[OK]をので、私は誰からのアドバイスを取り、いくつかのことを試してみました。

私は、サーバーからJSONデータを取得し、JSON.parseを実行した後、私はそれを警告し得る:

[object Object],[object Object],[object Object] 

私は

(thisJsonObject[0]); 

を警告するとき、私は

[object Object] 
を取得

だから私は近づいていると思うけど、実際のデータはまだ見えない。

+1

プロ先端を助けることができます。エラー(複数可)を共有します。エラーはほとんどの場合、問題の解決方法を強く示唆しています。 –

+1

"しかし、私はエラーが発生しています" - どのようなエラー?問題の明確な文で[mcve]を表示してください。 – Quentin

+0

あなたのプロパティはcols [0]であり、[0]ではなく、配列であるプロパティでcolsと思われるためです。 – davethecoder

答えて

1

これはかなり簡単です: 投稿したオブジェクトを変数に割り当てます。 配列のため、objectName[index]を使用してプロパティにアクセスできます。

var yourObject= the object you posted above. 
console.log(yourObject); 
console.log(yourObject[0]); 
console.log(yourObject[1]); 
console.log(yourObject[2]); 

それはあなたがJSONから、そのオブジェクトを解析しようとしているということだろうか?

これは既にJSオブジェクトに解析されています。

このフィドルを参照してください:

open console with F12 to see results

あなたがコンソールログに満足している場合は、単に変数の代入にそれらを回します。

代わりconsole.log(yourObject[0]);は、私はあなたが言ったコードを書く。..ように

+0

変数名として 'JSON'は多分悪い習慣です... –

+0

私はそれがひどいことに同意します:)私が投稿したものを見た後、私は2秒後にそれを書き直しました。私はJSONが実際のオブジェクトではなく、私が始めて名前が残っていたと思っていました。彼は同じミスをしたかもしれないと思う;) – DanteTheSmith

+0

ありがとう!これが私の必要なものです。私は結果を警告しようとしていて、オブジェクトオブジェクトを取得していました。私がconsole.logを見ると、結果が分かれているのが分かります。 – dansmith841

0

var part1 = yourObject[0];を書いて。

var raw = 'YOUR_JSON_STRING'; 
var result = JSON.parse(raw); 

その後、

var part1 = result[0]; 
var part2 = result[1]; 
var part3 = result[2]; 

希望はこれはあなたの

関連する問題