我有以下字符串:
[{"EventType":1,"ParticipantId":"1","X":123,"Y":123},{"EventType":2,"ParticipantId":"1","ParrentList":[123,124,125,126],"X":0,"Y":0}]
谁能告诉我如何将其转换为 JSON 结构,然后获取每个键的值,例如:
EventType = 1;
ParticipantId = 1;
X = 123;
etc.
我实际上正在尝试按如下方式进行操作,但我认为这不是一种明智的做法:
var results = [{"EventType":1,"ParticipantId":"1","X":123,"Y":123},{"EventType":2,"ParticipantId":"1","ParrentList":[123,124,125,126],"X":0,"Y":0}];
var arr = eval("(" + results + ')');
for(var i=0;i<arr.length;i++){
var obj = arr[i];
for(var key in obj) {
var attrName = key;
var attrValue = obj[key];
switch(attrName) {
case "EventType" :
EventType = attrValue;
break;
case "ParticipantId" :
ParticipantId = attrValue;
break;
case "X" :
xCoord = attrValue;
break;
case "Y" :
yCoord = attrValue;
break;
}
}
}
谢谢。
最佳答案
您已经有了一个 Javascript 对象。所以你可以这样做:
for(var i = 0; i < results.length; i++) {
var result = results[i];
var eventType = result.EventType;
var participantId = result.ParticipantId;
var xCoord = result.X;
var yCoord = result.Y;
...
}
不需要遍历属性,在这种情况下也肯定没有理由使用 eval
。 Javascript 已经将您的变量识别为对象。
现在,如果结果是一个实际的字符串,我建议使用 JSON.parse(...)
取回 Javascript 对象:
var results = JSON.parse(jsonString);
关于javascript - 在 JavaScript 中将字符串转换为 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8068559/