我想用JS读取一个外部JSON文件,该文件是一个n个对象的数组,而且n很大。因此,最好我想编写数组,每个对象占一行。然而,我发现只有当所有内容都放在一行中时它才有效;任何换行都会把事情搞乱。我想知道为什么。下面,我用一个简化的例子来说明。奇怪!
有效的 data.json
文件:
data = '[{"name": "Ashwin","age": "20"},{"name": "Abhinandan","age": "21"}]';
data.json
文件不起作用:
data = '[{"name": "Ashwin","age": "20"},
{"name": "Abhinandan","age": "21"}]';
使用 JavaScript 的 HTML 文件:
<script type="text/javascript" src="data.json"></script>
<script>
var mydata = JSON.parse(data);
alert(mydata[0].name);
alert(mydata[0].age);
alert(mydata[1].name);
alert(mydata[1].age);
</script>
最佳答案
如果不使用反斜杠字符进行转义,则无法在 JS 字符串文字中使用换行符。不过,您可以使用换行符,而无需在 JS 字符串模板中转义它们。下面的代码片段中显示了两个示例:
let data = '[{"name": "Ashwin","age": "20"},\
{"name": "Abhinandan","age": "21"}]';
console.log(JSON.parse(data));
data = `[{"name": "Ashwin","age": "20"},
{"name": "Abhinandan","age": "21"}]`;
console.log(JSON.parse(data));
关于javascript - 正确的 JSON 格式 : newline not allowed for each item in a JSON array?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52462368/