在JavaScript中将字符串转换为JSON
我有以下字符串:在JavaScript中将字符串转换为JSON,javascript,json,Javascript,Json,我有以下字符串: [{"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. 事实上,我正试图按照以下方式来做,但我认为这不
[{"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;
}
}
}
var results=[{“EventType”:1,“ParticipantId”:“1”,“X”:123,“Y”:123},{“EventType”:2,“ParticipantId”:“1”,“ParrentList”:[123124125126],“X”:0,“Y”:0}];
var arr=eval(“(“+结果+”)”);
对于(var i=0;i您已经有了一个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;
...
}
JSON.parse是您的朋友
但是,是的……我也很困惑。在您的示例中,您已经有了JSON。您只需要在需要从字符串转换为对象时解析它
有谁能告诉我如何将其转换为JSON结构,然后获取每个键的值
第1点:这是一种JSON结构。JSON是一种用于序列化数据以在internet上传输的符号(或用于其他存储/传输目的,但这一点很重要)。JSON编码的数据是一个字符串。Always.JSON符号与Javascript本身中的对象符号非常相似(实际上完全兼容)
实际上,您要做的是将JSON编码的数据字符串转换为Javascript对象。相关函数为:
然后,您可以以正常方式访问数据,例如数据[0]。EventType
将为1
。我不确定“获取每个键的值”是什么意思,因为数据是一个结构相似的对象数组,所以每个键都有多个值。这已经是JSON了……我不明白你想做什么:这段代码来自哪里?这段代码实际上是从一个ASP.NET WebMethod返回的,它返回一个字符串。如果我直接传递该字符串,没有eval(),我将无法将其解析为JSON对象。因此,它是通过AJAX检索的,而不是通过Javascript中的简单var results=
赋值检索的?是的,这是正确的,它是通过AJAX调用检索的。
var results = JSON.parse(jsonString);
var data = JSON.parse(results);