我是JSON的新手
如何向html显示以下数据。对于样本我想从'西南'显示'lat'和'lng',或者我想显示'text'。
{“routes”:[ { “bounds”:{ “东北”:{ “lat”: - 26.758340, “lng”:153.035930 }, “西南”:{ “lat”: - 27.454070, “lng”:152.852150 } }, “copyright”“:”地图数据©2011 GBRMPA,Google,Whereis(R), Sensis Pty Ltd“, “腿”:[ { “距离”:{ “文字”:“89.7公里”, “价值”:89693 }, “持续时间”:{ “文字”:“1小时17分钟”, “价值”:4633 }, “end_address”:“Maleny QLD 4552,Australia”, “end_location”:{ “lat”: - 26.758420, “lng”:152.852150 }, “start_address”:“布里斯班昆士兰州,澳大利亚”, “start_location”:{ “lat”: - 27.454070, “lng”:153.026880 }, } ] } ]}
干杯!
答案 0 :(得分:3)
假设数据是你的json,你可以使用$ .parseJSON(data)来获取对象。
顺便说一下,你的例子中的json是无效的 - 你最后有两个额外的昏迷。以下是使用有效json的示例:
var data = '{ "routes" : [ { "bounds" : { "northeast" : { "lat" : -26.758340, "lng" : 153.035930 }, "southwest" : { "lat" : -27.454070, "lng" : 152.852150 } }, "copyrights" : "Map data ©2011 GBRMPA, Google, Whereis(R), Sensis Pty Ltd", "legs" : [ { "distance" : { "text" : "89.7 km", "value" : 89693 }, "duration" : { "text" : "1 hour 17 mins", "value" : 4633 }, "end_address" : "Maleny QLD 4552, Australia", "end_location" : { "lat" : -26.758420, "lng" : 152.852150 }, "start_address" : "Brisbane QLD, Australia", "start_location" : { "lat" : -27.454070, "lng" : 153.026880 } } ] } ] }';
var routes = $.parseJSON(data).routes;
现在routes是路由对象的javascript数组。例如,routes[0].copyrights
返回“地图数据©2011 GBRMPA,Google,Whereis(R),Sensis Pty Ltd”。希望这有帮助!
答案 1 :(得分:3)
正如Georgi所说,使用$.parseJSON(data)
。
然后,要访问lat
和lng
属性,您可以使用点表示法:
var data = ''; // json string here
var jsonObject = $.parseJSON(data);
var lat = jsonObject.routes[0].bounds.northeast.lat;
var lng = jsonObject.routes[0].bounds.northeast.lng;
因为routes
是一个数组对象,我们使用常规数组元素访问器([]
)来访问第一个元素(0
)。
答案 2 :(得分:0)
你的json字符串可能已被解析,你可以从ajax服务获取一个json对象,如果你想要某个json对象或子对象的值,你可以像这样获取它:
var data = {here goes your whole json object you have above...};
var southwestLong = data.routes[0].bounds.southwest.lng;
基本上,解析被遗漏了,因为它已经作为json对象进入。
但是在大多数情况下,你会在所有路径对象上编写一些循环,例如循环,以便在列表中渲染它们。
另外,我建议您测试某个要定义的项目。因为如果传入一个更改过的json对象,例如它有0个路由,则上面的代码会出错,因为data.routes[0]
不存在。