这是我的。我有一个返回字符串 (data.d) 的 AJAX 调用,如下所示:
{"id": "03100500", "name": "Book I"},{"id": "03100507", "name": "Book I - ALT"},{"id": "03100505", "name": "Book I - M"},{"id": "03100600", "name": "Book II"}
我试过:
var books = JSON.parse(data.d);
基本上得到一个错误“Uncaught SyntaxError: Unexpected token , in JSON”
我想要的最终结果:
var newArray = [{"id": "03100500", "name": "Book I"},{"id": "03100507", "name": "Book I - ALT"},{"id": "03100505", "name": "Book I - M"},{"id": "03100600", "name": "Book II"}]
不知道有没有可能
最佳答案
如果没有数组分隔符,则该字符串不是有效的 JSON。给定没有数组定界符的字符串,您可以在解析之前添加它们:
let s = `{"id": "03100500", "name": "Book I"},{"id": "03100507", "name": "Book I - ALT"},{"id": "03100505", "name": "Book I - M"},{"id": "03100600", "name": "Book II"}`
// make new string with `[]` delimiters:
let o = JSON.parse('[' + s + ']')
console.log(o)
如果该值将以更复杂的方式存在缺陷,例如未定界的嵌套数组,它将变得更加困难,并且可能值得在服务器上修复它。
关于javascript - 将 AJAX 字符串返回到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54011839/