Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaScript中将字符串转换为JSON_Javascript_Json - Fatal编程技术网

在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);