为什么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}


胡说叔叔
浏览 2021回答 1
1回答

FFIVE

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

相关分类

JavaScript