我有一个像这样吐出 JSON 数据的后端应用程序:
[{"id":1,"line_number":"604"},{"id":2,"line_number":"610"}]
我的移动应用程序在 Jquery-Mobile 的 mobileinit 函数中使用 localStorage 将该数组存储为字符串:
localStorage.variable = getBusesList();
反过来,该函数执行以下操作:
function getBusesList(){
var busesJSONArray = [];
$.getJSON('someURL', function(data){
$.each(data, function(key, value){
busesJSONArray.push( { id: value.id, line_number: value.line_number } );
});
});
var JSONObject = {
buses: busesJSONArray
};
alert("busesJSONArray :" + busesJSONArray);
alert(" getBusesList Done: " + JSON.stringify(JSONObject));
return JSON.stringify(JSONObject);
}
getJSON 函数正常工作。问题不应该存在。它应该返回一个包含对象数组的字符串。如果我直接在浏览器控制台中键入命令,这将有效。但如果运行移动应用程序,第一个警报有:“busesJSONArray:”,第二个警报有:“getBusesList Done: {"buses":[]}"。
有效:
>localStorage.buses
"{"buses":[]}"
这很奇怪。任何有关正在发生的事情的提示将不胜感激。谢谢!