2016-07-29 47 views
1

听起来很奇怪吗?等待,直到听到整个故事。 我是公司的初级网站开发人员,我们正在与opencart合作开发我们的网上商店项目。json是否有兼容性问题?

我们的任务是将opencart的数据库与ATLANTIS或ERP的数据库同步,因此当新产品可用或有更新时,电子商店将自动更新。

经过一番讨论后,我将json添加到表中,但高级Web开发人员表示,当从非web语言为web等语言生成json时,存在兼容性问题。

这是我第一次听到,我想问这是否属实,因为我从来没有得到完整的解释。

+1

JSON是非常简单的文本格式。它本身不能有任何兼容性问题。必须是你的任何一方产生无效的json,或者另一方不能正确解析有效的json。 –

+0

根据[spec](http://www.json.org/):_“JSON是一种完全不依赖语言的文本格式,但使用C语言家族程序员熟悉的约定,包括C ,C++,C#,Java,JavaScript,Perl,Python等等,这些特性使得JSON成为一种理想的数据交换语言。“_生成/解析是一种web还是非web语言都没有区别。如果两种语言都正确实现了这个规范,那么它就能正常工作如果你担心生成的JSON不好,请运行[jsonlint.com](http://jsonlint.com/)来验证 – War10ck

+1

“非web语言,如php”?呃,你的高级开发人员必须从一美元的谷物盒子里得到他的培训。现有的PHP的全部原因是构建网页。 –

回答

4

JSON由相当严格且有些限制的spec定义。符合此规范的任何库都将读取由任何符合库生成的JSON,并生成可由其他任何符合库读取的JSON。

如果您使用的库以某种方式“扩展”了JSON,这种方式明显很差且不符合规范,但通常这不是一个常见问题。

0

没有兼容性问题,但是,它有一些不同的RFC(请求来自评论)和标准。

也存在一些系统完全忽视这种RFC(RFC 4627,RFC 7159和ECMA-404/ECMA-262标准是最常见的)。最后,由于JSON只是文本,所以传统机器将文本保存为不正确的编码,无论是忽略它们的Endian系统,还是使用错误的符号都是常见的(从我个人的经验来看)。

以前的分析师倾向于忽略,因为与一些他们已经使用了很长时间的自定义可序列化系统相比,JSON更容易解密并使用更大的文件大小。