json key_value大坑

不同意问题中的观点,json的key和value都是具有明确类型的,其中,value的类型只有六种:null
boolean
number
string
array
object

而object中的key,其类型只有一种:string<只有一种,只能是string类型>

由于JSON不是编程语言,所以无所谓“变量”,也就没有所谓的“变量的类型”,自然也就不存在所谓的“强类型”或者“弱类型”的区别。对一个特定的JSON来说,所有出现的内容都是常量,是不会变化的。而一个常量的类型是由值本身决定的。当你发现一个{,你就知道它是一个object。发现"是string。发现[是array。发现[0-9.-]是number,发现[tr]是boolean,发现n是null。一切都很清楚。而true和false为什么要出现,当然是为了传递类型。我们需要除了字符串以外的类型。如果忽略类型,那么大可以把number也取消了,所有类型都用字符串表示。这样你就得到一个JSON的子集了。而你很容易就能得到它,只要你在生成JSON时不使用除了string以外的类型就可以了。同样的,如果你不需要true和false类型,你大可以不使用它,用任何你喜欢的方案代替。但是其他人想使用,你不应该阻止他们。