2016-10-12 14 views
0

JSON.parseを使用して、下のJSONをjavascriptオブジェクトに変換しています。私は解析を行うとJson.Parseは自動的に値を変更しています

{"codeDetails":[{"codeID":3,"codeName":[5,8,-1,1,2,3,9,4,6,7,10]},{"codeID":2,"codeName":[0]},{"codeID":4,"CodeName":[1,2]}],"userName":"YYY","userID":"XXX"} 

、codeIDの最初の値は、以下の3から1

codeDetails:Array[3] 
0:Object 
codeID:1 -- this is supposed to be 3. 
codeName: 
Array[11] 
0:5 
1:8 
2:-1 
3:1 
4:2 
5:3 
6:9 
7:4 
8:6 
9:7 
10:10 
length:11 

に変化している私は解析に使用していたコードです。

var uText = response.responseText; -- the response from my Ajax call. 
var jsonConvertion = JSON.parse(uText); 
detailtext = JSON.parse(jsonConvertion); 

私はJSONを返している値を変更しようとしたが、最初の値は常に1に変化していることJson.Parseための代替はありますか?

+0

あなたは 'uText' codeID = 3で本当ですか?私は再現できず、なぜ失敗するのか分かりません。 – rbntd

答えて

2

JSON.parse()(最新のChromeとFirefoxでテスト済み)に問題はなく、代替手段を探す必要はありません。

var json = "{\"codeDetails\":[{\"codeID\":3,\"codeName\":[5,8,-1,1,2,3,9,4,6,7,10]},{\"codeID\":2,\"codeName\":[0]},{\"codeID\":4,\"CodeName\":[1,2]}],\"userName\":\"YYY\",\"userID\":\"XXX\"}"; 
 
var object = JSON.parse(json); 
 

 
console.log(object.codeDetails[0].codeID); // writes out 3

+0

はい、そうではありません。 –

+1

私が投稿したスニペットに示されているように、問題は 'JSON.parse()'ではありません。 –

+0

ええ、JSON.parse()に問題がないように見えます。* _detailtext_ *変数を* _JSON.parse(jsonConvertion)_ *に置き換え、正しい値にアクセスできました。変数がうまくいかない理由が混乱しています。 –

2

それは1に変換する理由私は表示されませんが、これは間違いなくエラーです:

var jsonConvertion = JSON.parse(uText); 
detailtext = JSON.parse(jsonConvertion); 

seconde JSON.parse()の呼び出しはあなたのために失敗しますオブジェクトを解析しようとしています。

+0

var jsonConvertion = JSON.parse(uText); –

+0

var jsonConvertion = JSON.parse(uText); –

+0

var _jsonConvertion = JSON.parse(uText)_私の呼び出しが戻ってきたJSON値と同じ文字列を返します。だからもう一度変換しようとしました。 –

関連する問題