Json是一种轻量级的数据交换格式,非常适合在客户端和服务器之间传递数据。而3重Json则是指在Json中嵌套了3层以上的数据。下面我们来看一下如何处理3重Json。
{
"name": "Tom","age": 27,"address": {
"city": "New York","postcode": "10001","coordinates": {
"latitude": 40.7128,"longitude": -74.0060
}
}
}
上面的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] 举报,一经查实,本站将立刻删除。