我有一个简单的 JSON 字符串,封装在一个使用 Java 中的 JSONArray 和 JSONObject 形式的 org.json 创建的数组中。
var outObjA = [{"LoginTime":"2018-02-14 08:51:48.0","User":"f00dl3","RemoteIP":"127.0.0.1"}];
我正在尝试用 JavaScript 解析它。首先,我使用 `i"计数器遍历封装数据的数组:
for(var i = 0; i < outObjA.length; i++) {
var jsonData = JSON.parse(outObjA[i]);
console.log(jsonData);
}
当我尝试解析 JSON 时,出现错误:
SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data
我在其中构建了一个 try/catch,它返回了一个对象:
for (var i = 0; i < outObjA.length; i++) {
var jsonData = null;
try {
jsonData = JSON.parse(outObjA[i]);
} catch (e) {
jsonData = outObjA[i];
}
console.log(jsonData);
}
返回:
{
"LoginTime": "2018-02-14 08:51:48.0",
"User": "f00dl3",
"RemoteIP": "127.0.0.1"
}
这是有效的 JSON,不是吗?
最佳答案
那不是 JSON 字符串,而是 JavaScript 数组。为了使它成为一个 JSON 字符串,用撇号将它包围起来,然后你可以解析它,最后循环遍历它:
var outObjA = '[{"LoginTime":"2018-02-14 08:51:48.0","User":"f00dl3","RemoteIP":"127.0.0.1"}]';
var outObjA = JSON.parse(outObjA);
for (var i = 0; i < outObjA.length; i++) {
var jsonData = outObjA[i];
console.log(jsonData);
}
或者更好的是,您可以直接循环遍历它而无需解析:
var outObjA = [{"LoginTime": "2018-02-14 08:51:48.0", "User": "f00dl3", "RemoteIP": "127.0.0.1"}];
for (var i = 0; i < outObjA.length; i++) {
var jsonData = outObjA[i];
console.log(jsonData);
}
关于javascript - 解析 Array 对象下的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48790960/