服务通过 JSON 提供以下信息
{"errors":{"subject":"foobar"}}
以及此错误数组中的其他元素
或者
{"ok":{"subject":"foobarfoobar"}}
以及这个 ok 数组中的其他元素
所以总是两者之一存在,而不是同时存在。任何一个不存在,我总是会收到访问错误,因为属性当然不存在
我完全不知道如何处理这个结果。我总是得到“不能......未定义”:
我目前拥有:
if (data[0].hasOwnProperty("status")) {
alert('ddd');
}
如果提供了错误或正常,正确的测试方法是什么?
更新
blex 是对的:但在服务器端使用:
echo json_encode( array('errors' => $result['errors']) );
这是否意味着错误已经是数组的第一个元素?为什么这被视为对象属性?
解决方案/学习:
小心PHP!如上所述,echo json_encode( array('errors' => $result['errors']) );
不会导致将其编码为 JSON 数组。我误解和监督的是, {
是对象的格式/符号,而不是数组的格式/符号。因此,要成为一个数组,它必须是 [
。 所以最终 PHP 确实将关联数组编码为普通对象属性而不是数组。这是我错误的假设
最佳答案
var x = { "errors": { "subject": "foobar" } };
//var x = { "ok": { "subject": "foobarfoobar" } };
if (x.errors) {
} else if (x.ok) {
}
关于javascript - 处理未知格式的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29235574/