我有字符串"field: 1, count: 22"
如何解析对象?
评估不提供
如果那是您真正的问题,请使用未引用的键。以下代码可能有效(假设键并非每个都包含空格)
var x = "field: 1, count: 22";
JSON.parse("{"+x.replace(/([\S]+)\:/g,'"$1":')+"}");
但我认为你真的应该检查你的数据来自哪里,并尝试让该来源为你提供有效的 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 的解决方案非常好......无论如何希望它有所帮助......