如何使用jquery或javascript在JSON中获取对象

我是JSON的新手

如何在html中显示以下数据。 对于样本我想从’西南’显示’lat’和’lng’,或者我想显示’text’。

{“routes”:[{“bounds”:{“northeast”:{“lat”: – 26.758340,“lng”:153.035930},“southwest”:{“lat”: – 27.454070,“lng”:152.852150}} ,“copyrights”:“地图数据©2011 GBRMPA,Google,Whereis(R),Sensis Pty Ltd”,“leg”:[{“distance”:{“text”:“89.7 km”,“value”:89693} ,“持续时间”:{“text”:“1小时17分钟”,“值”:4633},“end_address”:“Maleny QLD 4552,澳大利亚”,“end_location”:{“lat”: – 26.758420,“lng “:152.852150},”start_address“:”Brisbane QLD,Australia“,”start_location“:{”lat“: – 27.454070,”lng“:153.026880},}],}]}

干杯!

正如Georgi所说,使用$.parseJSON(data)

然后,要访问latlng属性,可以使用点表示法:

 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 )。

假设数据是你的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”。 希望这可以帮助!

您的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]不存在。