2013-04-14 6 views
8

投稿要求の応答で受け取ったネストされたオブジェクトでJSON文字列を解析しようとしています。 JSON.parse(responseText)を実行した後、結果は次の形式である:JSON.parse JSONのネストされたオブジェクトの解析

[{ 
    "atco":"43000156407", 
    "location":{ 
    "longitude":"-1.7876500000000000", 
    "latitude":"52.4147200000000000"," 
    timestamp":"2013-03-19 11:30:00" 
    }, 
    "name":"Solihull Station Interchange", 
    "road":"STATION APPROACH", 
    "direction":"NA", 
    "locality":"Solihull", 
    "town":"Solihull"}, ... 

私はその後、一例として以下のものを使用して可能なプル値アウトだろうと思ったが、私が得るすべては未定義です。

var atco = json[0].atco; 

私もjson[0][0]を試みたが、それはJSON([)から個々の文字を返します。これは、JSONが正しく解析されなかったことを示していますか?これは予期された動作で、私は間違って参照していますか?

+0

あなたはそれをどのように構文解析しているのでしょうか? JSONが実際に示されている場合、 'json [0] .atco'は配列の最初のエントリの' atco'プロパティにアクセスする正しい方法です。だから、私たちは何がうまくいかないのか疑問に思っています。それは誰にも有用ではありません。 :-) –

+0

compelete jsonスクリプトを書いてください。 – ncm

+0

もしあなたが書いたようにjsonがそのオブジェクトを参照していれば、それは動作します:http://jsfiddle.net/XmchJ/他の何かが続いている、私は "私はない"と思っています –

答えて

10

これは、JSONがダブルエンコードされていることを意味します。サーバーで一度だけエンコードするようにしてください。

これを解析した後、もう一度解析します。

var parsed = JSON.parse(resposneText); 

var parsed2 = JSON.parse(parsed); 

alert(parsed2.atco); 

こと、またはあなたがそれを解析したが、その後、元の文字列からデータを選択しようとしているのどちらか。これは明らかに機能しません。

+0

ありがとう、ありがとうPHPスクリプトで二重にコード化されています。 – Dannyboy1430

+0

@ Dannyboy1430:ようこそ。 –

関連する問題