我正在使用JSON.parse将以下JSON转换为javascript对象。
{"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 :(得分: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

答案 1 :(得分:2)
我不明白为什么它会转换为1,但这肯定是一个错误:
var jsonConvertion = JSON.parse(uText);
detailtext = JSON.parse(jsonConvertion);
seconde JSON.parse()调用将失败,因为您将尝试解析一个对象。