我有这样的JSON文件:
{"companies":
[{"name":"LCBO", "City":"Mississauga", "Province":"Ontario",
"Website":"http://www.lcbo.com/content/lcbo/en.html#.WXtQ94jytPY",
"PhoneNumber":"1(800)668-5226",
"Longitude":"-79.381735", "Latitude":"43.648607"}]}
这是我的JavaScript,用于在单击按钮时将JSON文件存储在本地存储中:
$(document).ready(function() {
$('#btn1').click(function() {
$.ajax({
url:'company.json',
dataType:'json',
success: function(data) {
var u = data.companies[1];
$(u).each(function() {
$('#result1').append("<p>"+ "Company name: "+this.name + "<p>" +
"<p>"+ "City: " +this.City + "<p>" +
"<p>"+ "Province: "+this.Province + "<p>" +
"<p>"+ "Website: " +this.Website + "<p>" +
"<p>"+"Phone Number: "+this.PhoneNumber + "<p>" +
"<p>"+"Longitude: "+this.Longitude + "<p>" +
"<p>"+"Latitude: "+this.Latitude + "<p>");
saveData(u);
});
}
});
function saveData(data) {
var obj = {"Value":data};
if (window.localStorage) {
alert("Local Storage is supported");
localStorage.setItem("Information", JSON.stringify(obj));
} else {
alert("Local Storage is not supported");
}
}
});
问题是我如何获得价值&#34;经度&#34;和&#34;纬度&#34;来自当地的仓库。
答案 0 :(得分:0)
var info = JSON.parse(localStorage.getItem('Information'));
&#13;
答案 1 :(得分:0)
你需要从localStorage获取“信息”,它将是一个JSON字符串,将其解析回javascrpt对象,查看为公司数组创建的“Value”属性,并获取包含一个公司的数组元素data(第0个是从ajax返回的第一个公司),然后提取Latitude(或Longiture)属性。
JSON.parse(window.localStorage.get("Information")).Value.companies[0].Latitude
如果这看起来过于复杂,您可以分步进行:
var info = window.localStorage.get("Information");
var obj = JSON.parse(info);
var companies = obj.Value.companies;
var myCompany = companies[0];
var lat = myCompany.Latitute;
此外,也许在ajax获取后简化数据而不是将其嵌入到另一个对象中。此外,当前结构将仅缓存最后检索的ajax查询。要在localStorage中存储多个查询,需要为每个公司提供密钥,或者拔出旧对象,更新它,然后将其放回localStorage。在本地存储的内容存在限制。