javascript - 为什么json的key只能是string?

查看:136
本文介绍了javascript - 为什么json的key只能是string?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

在python中,字典的key可以是任意immutable对象,但json的key却只能是string。

在stackoverflow上搜到的相关问题,Why JSON allows only string to be a key?

最佳答案是说json是为了数据在不同程序之间相互传递,所以string能保证不同的程序语言都能支持这种数据结构。但我还是不明白为什么int、float之类的不行。

json.dumps({1:1,2:2})
'{"1": 1, "2": 2}

解决方案

首先JSON是Javascript的子集,而在Javascript中只有字符串、整型等5个数据类型,而后在其他编程语言中被使用,其他的语言的实现都是为了兼容JSON,比如Python标准库的json模块。详情可以查看json
至于JSON中为什么采用字符串作为键主要在于,首先需要是1个不可变的对象,因此只能是字符串、整型、浮点型这样的数据类型了,而在计算机中1个整型需要占用4个字节的内存,而字符只占用1个字节。
另外,使用JSON主要是为了传输数据,这个网络传输的过程中会丢失精度也是需要考虑的,而整型和浮点数都会出现精度的丢失。
另外使用字符串的形式还可以使用压缩算法进行压缩,进而节省带宽。
因此字符串是最佳的选择。

这篇关于javascript - 为什么json的key只能是string?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆