对象key值为数字时的处理

先说解决办法:

通过a[key]的方式获取。

具体场景是这样的:

有一个对象的key是数字组成的,这时候使用a.b的形式就不能获取到相应的value值,

如下图:

a.'111'会报错。

特别说明:

a['111']和a[111]两种写法都是一样的,没有什么区别,此用法与数组用下标访问是相同的。

请注意,如果使用方括号运算符,键名不为数值的时候,必须放在引号里面,否则会被当作变量处理。但是,数字键可以不加引号,因为会被当作字符串处理。

当对象的key为一个变量时,并且使用在循环中,那我们可以通过data['key']这种方式来动态生成对象,eg:

总结:

1.对象的key一般应使用合法的变量名(字母或下划线开头的包括字母、下划线和数字的字符串) ,这种情况下通过a.key 或者 a['key']的方式都可以获取到相应的value值。

2.当特殊场景key为数字的情况下,只能通过a['key']的方式来获取相应的value值。

    如当建立一个与数据库中id一一对应的map对象的时候, 

        可直接用id的数值做key,虽然你可以给它加上一个字母前缀来让它符合合法的变量名的标准, 

        并让它的数据能通过data.key的方式访问, 

        但如果数据量非常大的话, 

        为每个id都加一个前缀,+字符连接运算也是要消耗性能的, 

        特别是在很少需要采用data.key方式去访问属性的情况下, 

        那么可以抛弃此调用方式,直接用数字做key也未尝不可, 

        除了key名称不符合合法变量名的标准之外,似乎并没有其它损失;

 

转载于:https://www.cnblogs.com/fireflyo0/p/5239464.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: A:json对象可以有,也可以没有。如果一个json对象没有任何属性或键对,那么它的值为空。如果一个json对象有至少一个属性或键对,那么它的不为空。例如,一个空的json对象可以表示为{},而有的json对象可以表示为{"name":"Jack","age":30}。 ### 回答2: JSON对象可以有,也可以没有。JSON(JavaScript Object Notation)是一种轻量级数据交换格式,常用于前后端之间的数据传输。JSON对象由一对花括号{}包围,里面可以包含多个键对,每个键对由冒号:隔开,键和之间用逗号,分隔。 如果JSON对象中有键对存在,那么它就有。例如,一个包含两个键对的JSON对象如下: { "name": "John", "age": 30 } 这个JSON对象具有两个键对,name对应的是"John",age对应的是30。 如果JSON对象中没有键对存在,那么它就没有。例如,一个空的JSON对象如下: {} 这个JSON对象中没有任何键对,它可以表示为一个空的JSON对象。 在实际应用中,我们可以通过判断JSON对象是否有来决定如何处理数据。例如,在前端获后端返回的JSON数据,可以先判断JSON对象是否为空,如果为空则显示提示信息,如果不为空则解析JSON数据并进行相应的操作。 ### 回答3: JSON对象的。JSON(JavaScript Object Notation)是一种数据格式,它以键对的形式存储数据,可以表示复杂的数据结构。一个JSON对象可以包含多个键对,每个键对之间用逗号分隔。键是一个字符串,可以是字符串、数字、布尔、数组、嵌套的JSON对象等。一个键对形如"key": value,其中key是一个字符串,value是对应的。 一个JSON对象即使没有,也会存在,只是所有的键对都为空。例如,一个空的JSON对象可以表示为{}。 例如,下面是一个JSON对象的示例: { "name": "John", "age": 30, "isStudent": false, "hobbies": ["reading", "hiking"], "address": { "street": "123 Main St", "city": "New York", "country": "USA" } } 这个JSON对象有5个键对,每个键对都有对应的。所以,JSON对象是有的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值