【发布时间】:2020-05-26 06:22:10
【问题描述】:
我已经被提醒过好几次了(现在也提醒 SO 用户自己)JSON 是一种文本编码,与 JavaScript 对象不同。
在 PHP 中,您可以像在 JavaScript 中一样使用数组。在 J2EE 中,您可以创建 JsonArray 或 JsonStructure (https://docs.oracle.com/javaee/7/api/javax/json/JsonArray.html)...参考这些 Java 对象,在我看来,这已经像是对创建 JSON 的含义的混蛋了。
所以我的问题是:用 JavaScript 以外的语言描述类似 JSON 的数据结构的正确方法是什么?有什么比 JSON 更好的吗?如果我对我的同事说我的 PHP 页面中的 Array 的内容,那么说“It is a JSON”是错误的吗?我猜的替代方法是关联数组(或映射),但关联数组比 JavaScript 对象要广泛得多,JavaScript 对象也只能包含数组、对象和键值对。
【问题讨论】:
-
如果我错了,请纠正我,但由于 JSON 存在于使用它的语言之外,因此它被称为 JSON,仅此而已,类似于 XML。跨度>
-
你说得对,哈弗。 JSON 只是一种编码方案,如 XML 或 YAML,它恰好是最常用的一种,例如使用 AJAX 调用。您获取数据结构并将其转换为相应的 JSON 字符串,反之亦然。 回到更纯真的日子,格式“真的是 JavaScript”,而您只需通过字符串上的
exec()处理它!但现在它已成为与其他格式一样的标准格式,几乎所有语言都对它进行了标准化支持。 (他们通常都使用相同的库来完成繁重的工作。) -
"如果我对我的同事说我的 PHP 页面中一个数组的内容,那么说“它是一个 JSON”是错误的”...是的,如果它实际上是一个 PHP 数组. JSON 是一种基于文本的格式,用于传输和存储数据。一旦您将该数据字符串解码为所选语言的变量,它就不再是 JSON。
-
“在 J2EE 中,您可以创建 JsonArray 或 JsonStructure”...这些只是用于创建和/或阅读的便利类以通用方式处理 JSON 数据(不去(序列化)到/来自更具体的类型)。其他语言的库包含类似的类(例如,用于 .NET 的 Newtonsoft.JSON 库中的 JObject 和 JArray)。它们适用于 JSON,并不是说这些类是 JSON。
标签: javascript java php json