javascript - JSON数组在读取时被拆分为字母
问题描述
我正在尝试读取 JSON 响应,但是当我解析它时,它会被拆分为字母,而不是 JSON 对象。下面是我的代码和调试时看到的结果。
提前致谢。
$.get(sUrl)
.done(function(results) {
if (results != null) {
debugger;
var resultInJsonFormat = JSON.parse(results);
// tried this as well
// var resultInJsonFormat = JSON.parse(results.toString());
var resultJsonArray = resultInJsonFormat.TimeEvents;
var timeEventResults = [];
for (var i = 0; i < resultJsonArray.length; i++) {
var resultx = resultInJsonFormat.TimeEvents[i];
}
}
})
.fail(function(err) {
if (err !== undefined) {
var oErrorResponse = $.parseJSON(err.responseText);
sap.m.MessageToast.show(oErrorResponse.message, {
duration: 6000
});
} else {
sap.m.MessageToast.show("Unknown error!");
}
});
================ 调试器结果 ================
results = "{"TimeEvents":"[{\"timeEventId\":\"5974\",\"empID\":\"00000004\",\"timeEventType\":\"CheckOut\",\"logDate\":\"Oct 16, 2017\",\"logTime\":\"11:00:43 PM\",\"readLogDate\":\"Oct 16, 2017\",\"readlogTime\":\"08:13:55 PM\",\"dayAssignment\":1,\"terminalId\":2,\"origin\":1},{\"timeEventId\":\"5995\",\"empID\":\"00000004\",\"timeEventType\":\"CheckIn\",\"logDate\":\"Oct 17, 2017\",\"logTime\":\"11:45:15 PM\",\"readLogDate\":\"Oct 17, 2017\",\"readlogTime\":\"07:40:41 AM\",\"dayAssignment\":1,\"terminalId\":2,\"origin\":1},{\"timeEventId\":\"10280\",\"empID\":\"00000004\",\"timeEventType\":\"CheckOut\",\"logDate\":\"Oct 24, 2017\",\"logTime\":\"11:45:14 PM\",\"readLogDate\":\"Oct 18, 2017\",\"readlogTime\":\"05:55:43 PM\",\"dayAssignment\":1,\"terminalId\":2,\"origin\":1}]"}"
resultJsonArray = "[{"timeEventId":"5974","empID":"00000004","timeEventType":"CheckOut","logDate":"Oct 16, 2017","logTime":"11:00:43 PM","readLogDate":"Oct 16, 2017","readlogTime":"08:13:55 PM","dayAssignment":1,"terminalId":2,"origin":1},{"timeEventId":"5995","empID":"00000004","timeEventType":"CheckIn","logDate":"Oct 17, 2017","logTime":"11:45:15 PM","readLogDate":"Oct 17, 2017","readlogTime":"07:40:41 AM","dayAssignment":1,"terminalId":2,"origin":1},{"timeEventId":"10280","empID":"00000004","timeEventType":"CheckOut","logDate":"Oct 24, 2017","logTime":"11:45:14 PM","readLogDate":"Oct 18, 2017","readlogTime":"05:55:43 PM","dayAssignment":1,"terminalId":2,"origin":1}]"
iteration i = 0
resultx = "["
iteration i = 1
resultx = "{"
解决方案
您results
错误地有一个字符串值,而不是您期望的数组。注意第一个冒号后的双引号。
results = "{"TimeEvents":"[{...
遍历字符串中的每个项目将返回一个字符,这就是您所看到的行为。
检查数据的来源。它是否返回有效的 JSON?
推荐阅读
- powershell - 在 PowerShell 脚本中调用其他 PowerShell 脚本
- postgresql - Sequelize throwing:“关系“用户”不存在”
- php - 如何在 Moodle 3.5 中正确地需要依赖插件
- html - 如何在外部 CSS 文件 (.css) 中设置 lang 全局属性
- java - 使用 JNI 调用从 Cpp 返回字符串数组的 Java 方法
- javascript - 在Javascript中唯一更新数组中的对象时,对象的值都在变化
- r - R markdown 多个选项卡不会在 HTML 中生成
- python-3.x - 使用 Python 编辑 JSON 响应
- spring - Docusign EventNotification CSRF 保护
- php - 正则表达式 - 如果 PHP preg_match_all 有特定的单词和不区分大小写,则匹配整行