javascript - 在 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.

我实际上正在尝试按如下方式进行操作,但我认为这不是一种明智的做法:

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/

相关文章:

javascript - 我想将 jquery.post() 中的 JSON 对象输入到简单的 JS 图表(条形图)?

php - jqtree json数据与php和mysql

java - 在 kafka 流中使用 kafka connect json api 消费 JSON 值 : JAVA

javascript - 点击后禁用<a>

javascript - 如何获取当前打开给定网页的用户数量

javascript - ES6 - 如何在绑定(bind) `this` 类后访问 `this` 元素?

javascript - 如何在第一次请求主页时将 JSON 数据与返回的 HTML 结合起来?

php - Javascript 从另一个网站调用 javascript

javascript - 是什么导致服务 worker 的全局上下文被重置?

json - swiftyJSON 移入数组