如何使用没有双引号的JSONparse

时间:2013-04-08 12:24:38

标签: javascript jquery

我有字符串"field: 1, count: 22" 如何解析对象?

eval不提供

2 个答案:

答案 0 :(得分:5)

如果那是你真正的问题,不加引号的键。以下代码可能有效(提供密钥并不是每个都包含空格)

var x = "field: 1, count: 22";
JSON.parse("{"+x.replace(/([\S]+)\:/g,'"$1":')+"}");

但我认为你应该检查你的数据来自何处,并尝试获取该源以提供有效的JSON,因为正如其他人所指出的那样,你提供的是什么,不是。

答案 1 :(得分:0)

你可以试试这个:

function getJSON(str){
      // get lines i.e. "field: 1"
      var lines = str.split(",");

      for (var i = lines.length - 1; i >= 0; i--) {
            // separate key from values. "[field, 1]"
            var keyValue = lines[i].split(": ");
            // add the quotes
            lines[i] = "\"" + keyValue[0] + "\": " + keyValue[1];
      }

      // replace single quotes with double quotes and join array with comma
      // parsing it to an JSON object
      return JSON.parse(("{" + lines.join(", ") + "}").replace(/'/g, "\""));
}

但@Forbesmyester的解决方案非常好...... 无论如何希望它有所帮助..