读取文件并将内容存储在一个变量中,即var json
。
假设变量包含这样的
var json = {
"abc":"abc",
"xyz":"xyz"
}
上面的变量包含有效的json。
如果Json文件中发生错误,是否有办法找出错误的位置,例如:行号和列号?
如果它无效
var json1 = {
"abc":"abc",
"xyz":xyz"
}
错误应该显示为
Parse error on line 3:
...: "abc", "xyz": xyz"}
----------------------^
答案 0 :(得分:0)
您的问题中没有任何JSON,但如果我们假设您这样做:
var json = '{ "abc":"abc", "xyz":"xyz" }';
所有现代浏览器都支持JSON.parse
,如果JSON无效,则会抛出异常,因此:
try {
var obj = JSON.parse(json);
}
catch (e) {
// The JSON was invalid, `e` has some further information
}
但是那些不会给你排队和专栏的人。为此,您可能需要一个解析脚本。在浏览器内置JSON.parse
之前,有Crockford's json2.js
和various others listed at the bottom of the JSON.org page等脚本可以为您提供行和字符信息(或者可以修改为)。
JSON.parse
示例:
var valid = '{ "abc":"abc", "xyz":"xyz" }';
test("valid", valid);
var invalid = '{ "abc", "xyz":xyz }';
test("invalid", invalid);
function test(label, json) {
try {
JSON.parse(json);
snippet.log(label + ": JSON is okay");
}
catch (e) {
snippet.log(label + ": JSON is malformed: " + e.message);
}
}

<!-- Script provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
&#13;