2015-09-19 72 views
2

我很困惑什么是自由格式的JSON。这是否意味着您可以在{}中将任何类型作为值?自由格式和非自由格式JSON有什么区别?

我认为所有的JSON都是这样的(即{'hi':123, 'abc':{'d':[1,2,3],'e':'yay'}})。

那么自由格式的JSON是什么意思。这是一个多余的术语吗?有没有非自由格式的JSON?

+2

如果您可以提供您看到短语“自由格式JSON”的上下文,这将有所帮助。可能没有任何区别,这个词只是被用于强调(例如,与XML和其他高度结构化的格式进行对比)。 – Kevin

+0

[Eclipse错误407498 - 包含JSON数组的异常解组自由格式JSON对象](https://bugs.eclipse.org/bugs/show_bug.cgi?id=407498)表明“自由格式”意味着对象的一个​​或多个部分可能改变而“非自由形式”意味着对象的任何部分都不会改变(所有“字段”保持存在并且可以被访问)。 [如何在Mongoose文档中允许自由形式的JSON数据?](http://stackoverflow.com/q/10403450/539810)似乎也提示了同样的事情。 –

回答

1

刚刚发布的内容看起来像一个JavaScript对象,但它不是有效的JSON。 JSON有一些非常严格的规则,比如所有的字符串都必须用双引号。请参阅JSON.org

没有“自由格式”/“非自由格式”JSON这样的事情,因为每个有效的JSON字符串都必须根据JSON.org上提到的特定规则进行格式化。

“自由格式”JSON可能是“手动”生成的,意思是您手动输入(容易出错)的JSON。大多数语言都有内置的方法或可用的库,可将原生数据结构(如多维数组)转换为有效的JSON。例如,PHP有一个称为json_encode的本地方法。

相关问题