我有一些JSON,其中两个参数表示为
{"pushid":"35336165333161382d646338302d346665302d626236312d303763313435663036656131","count":1}
我试图在对象,数组或地图中访问“pushid”和“count”作为可用元素,并且对于如何做到这一点感到有些困惑。
当我调用JSON.parse(json)时,它返回undefined,所以我认为它已经是一个对象了。但是,当我尝试使用json [1]时,它返回整个事物的第二个字符(在这种情况下是“)。如何创建一个对象
var obj = {pushId: SOME_STRING, count: SOME_INT)?
提前致谢,
答案 0 :(得分:2)
考虑到:
var jsonString = '{"pushid":"35336165333161382d646338302d346665302d626236312d303763313435663036656131","count":1}';
你可以这样做:
var jsonObj = JSON.parse(jsonString);
console.log(jsonObj.pushid); // 3533...
console.log(jsonObj['pushid']); // 3533...
console.log(jsonObj.count); // 1
console.log(jsonObj['count']); // 1
console.log(jsonObj[0]); // undefined
console.log(jsonObj[1]); // undefined
答案 1 :(得分:1)
这已经是一个对象,因此您无需解析它。 { “pushid”: “35336165333161382d646338302d346665302d626236312d303763313435663036656131”, “计数”:1}
现在你所要做的就是将它分配给你想要的变量。
let data = {"pushid":"35336165333161382d646338302d346665302d626236312d303763313435663036656131","count":1};
console.log("pushid : " + data["pushid"]);
pushid : 35336165333161382d646338302d346665302d626236312d303763313435663036656131
console.log("count : " + data["count"]);
count : 1
答案 2 :(得分:0)
我的意思是,这个数字太长了,JS无法用它的64位浮点内部表示来表示,但你可以尝试用
来解析base16 repr parseInt(obj.pushid, 16);