Javascript 如何使用不带双引号的JSONparse

Javascript 如何使用不带双引号的JSONparse,javascript,jquery,Javascript,Jquery,我有字符串“字段:1,计数:22” 如何解析对象 如果这是您真正的问题,请不要提供无引号的密钥。以下代码可能会起作用(提供的键不包括空格) 但我认为您确实应该检查数据来自何处,并尝试获取该源以提供有效的JSON,因为正如其他人所指出的,您提供的不是。以下代码可能会起作用(提供的键不包括空格) 但我认为您真的应该检查数据来自何处,并尝试让该源为您提供有效的JSON,因为正如其他人所指出的,您提供的并非如此。您可以尝试以下方法: function getJSON(str){ // get

我有字符串
“字段:1,计数:22”
如何解析对象


如果这是您真正的问题,请不要提供无引号的密钥。以下代码可能会起作用(提供的键不包括空格)


但我认为您确实应该检查数据来自何处,并尝试获取该源以提供有效的JSON,因为正如其他人所指出的,您提供的不是。以下代码可能会起作用(提供的键不包括空格)

但我认为您真的应该检查数据来自何处,并尝试让该源为您提供有效的JSON,因为正如其他人所指出的,您提供的并非如此。

您可以尝试以下方法:

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的解决方案非常好。。。 无论如何,希望它能有所帮助。

您可以尝试以下方法:

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的解决方案非常好。。。
无论如何,希望它能有所帮助。

您可能需要编写自己的解析器。为了澄清Salman的评论:因为这不是有效的JSON,您不能使用JSON解析器。您的意思是不使用eval?您将需要某种类型的evalperhaps,它将更容易引用replace。您应该拆分它并将其转换为object。。没有其他方法…您可能需要编写自己的解析器。为了澄清Salman的评论:因为这不是有效的JSON,您不能使用JSON解析器。您的意思是不使用eval?您将需要某种类型的evalperhaps,它将更容易引用replace。您应该拆分它并将其转换为object。。没有别的办法。。。