$.getJSON(url).done(function(data) {});
我使用return this调用 REST 服务器
[
"{" id":1,
"medname":"Medication No. 1",
"qty":"2",
"pDay":"3",
"beforeAfterMeal":null
}", "{
"id":3,
"medname":"Medication No. 2",
"qty":"1",
"pDay":"1",
"beforeAfterMeal":null
}", "{
"id":4,
"medname":"Medication 3",
"qty":"4",
"pDay":"1",
"beforeAfterMeal":null
}
]
来自 Chrome 中的 console.log。
通过使用 $.each() 我可以循环 3 次(因此它知道 JSON 数组中有 3 个条目),但是当我使用
data[1].id
ordata[1].medname
或任何键时,它给了我undefined
or null
?
我的疑问是,返回的 JSON 数组是否正确?它是从 json_encode() (PHP) 返回的,所以我认为它是正确的。
另外,我试过$.parseJSON()
没有结果。
也许我看错地方了?一个指针会有很大的帮助。
这是来自服务器的原始返回值(在 json_encode() 之后):
[
"{\"id\":1,\"medname\":\"Medication No. 1\",\"qty\":\"2\",\"pDay\":\"3\",\"beforeAfterMeal\":null}",
"{\"id\":3,\"medname\":\"Medication No. 2\",\"qty\":\"1\",\"pDay\":\"1\",\"beforeAfterMeal\":null}",
"{\"id\":4,\"medname\":\"Medication 3\",\"qty\":\"4\",\"pDay\":\"1\",\"beforeAfterMeal\":null}"
]
以上是正确的吗?如果不是,那么知道哪个部分实际上是错误的对我很有用。
更新
我想我正在犯错误的地方。
这是服务器中发生的情况,对于每个条目,它们都使用 单独编码json_encode()
,并添加到数组中。最后,数组再次被编码为json_encode()
这是数组的 var_dump,在我明确调用之前json_encode(array);
array (size=3)
0 => string '{"id":1,"medname":"Medication No. 1","qty":"2","pDay":"3","beforeAfterMeal":null}' (length=81)
1 => string '{"id":3,"medname":"Medication No. 2","qty":"1","pDay":"1","beforeAfterMeal":null}' (length=81)
2 => string '{"id":4,"medname":"Medication 3","qty":"4","pDay":"1","beforeAfterMeal":null}' (length=77)
这是错误的地方吗?我不应该先单独编码每个条目吗?:/