jsonobject html转义,JSON 对象 | JSONObject - SO JSON在线教程

当我们对象里有特殊的Key,或者不是字符串的Key,处理起来稍微有点麻烦。

就上面的Demo,我们取name,那么就是json.name就可以取到“本兮”。其实很好理解这个点“.”就是类似于“的”的感觉,json的name。这么理解是不是很好理解?

那么问题来了,如果JSON如下数据,你们可以试试。

var json = {

"1": {

"name": "本兮",

"age": "22"

},

"2": {

"name": "关晓彤",

"age": "20"

}

};

alert(json.1.name);// X 错误 throw Uncaught SyntaxError;

按我们刚刚的逻辑直接点,那么我们要取到“关晓彤”就应该是。json.1.name吧,但是你会发现报错,错误信息应该是Uncaught SyntaxError,语法错误,请自行测试,那么正确应该怎么获取呢?

//正确的打开姿势如下:

alert(json[1].name);

alert(json["1"].name);

alert(json["1"]["name"]);

//错误,undefined

alert(json["1"][name]);

其实上面看出了一个问题,那么就是数值可以不带引号,String必须带引号,再次强调:严格来讲是双引号,个别弱语言支持单引号。

运行一下试试

JSON 特殊Key,Number篇(2)

严格来讲是双引号,个别弱语言支持单引号。还有一个问题就是,弱语言除了String类型,其他的明确类型不用单引号或者双引号。把上面的Demo在弱语言里可以这么写,比如在Javascript中可以这么写,没有任何瑕疵。

var json = {

1: {

"name": "本兮",

"age": "22"

},

2: {

"name": "关晓彤",

"age": "20"

}

}

我们再来尝试获取一次。

运行一下试试

结果已经看到了,其实没问题,所以要区分强弱语言的问题,建议还是强烈要求自己,按规范来,这样肯定没毛病。

注意:其他的我就不多说了,其实都是一样,比如boolen类型的Key,null类型的Key都是一样的处理方式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值