微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

3重json

Json是一种轻量级的数据交换格式,非常适合在客户端和服务器之间传递数据。而3重Json则是指在Json中嵌套了3层以上的数据。下面我们来看一下如何处理3重Json。

{
   "name": "Tom","age": 27,"address": {
      "city": "New York","postcode": "10001","coordinates": {
         "latitude": 40.7128,"longitude": -74.0060
      }
   }
}

3重json

上面的Json数据包含了3层嵌套,其中address和coordinates都是对象,而不是简单的属性。当我们需要访问其中的某个值时,可以使用点号“.”来访问各层的对象。比如,要获取Tom的年龄可以使用以下代码

var json = '{"name": "Tom","address": {"city": "New York","coordinates": {"latitude": 40.7128,"longitude": -74.0060}}}';
var obj = JSON.parse(json);
var age = obj.age;

同样的,要获取纬度(latitude)可以这样做:

var latitude = obj.address.coordinates.latitude;

需要注意的是,当我们访问嵌套的对象属性时,必须保证上一级对象存在,否则会抛出错误。比如,假设我们想要获取以下代码中的某个值:

{
   "name": "Tom","address": {
      "city": "New York"
   }
}

如果我们尝试访问coordinates的某个属性会触发错误

var latitude = obj.address.coordinates.latitude; // Uncaught TypeError: Cannot read property 'latitude' of undefined

因为coordinates对象不存在。因此,在访问嵌套的属性时,我们需要先判断上一级对象是否存在,可以使用如下代码

if(obj.address && obj.address.coordinates){
   var latitude = obj.address.coordinates.latitude;
}

这样在coordinates对象不存在的情况下,不会抛出错误

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐