org.json.JSONObject 对比 javax.json.JsonObject?

org.json.JSONObject vs. javax.json.JsonObject?

两者之间的显着差异是什么:

org.json.JSONObject 和 javax.json.JsonObject?

最重要的是,它们可以从客户端互换到 Web 服务吗? IE。我可以将 JSONObject 发送到 Webservice 并让 Webservice 相信类型是 JsonObject(反之亦然)吗?

(在 ACRA 的 json-20080701.jar 中找到的 JSONObject)

(在 C:\glassfish4\glassfish\modules\javax.json.jar 中找到的 JsonObject)

What are the significant diffs between org.json.JSONObject and javax.json.JsonObject?

  • javax.json.JsonObject 包含在 Java EE 7
  • javax.json.JsonObject 是不可变的
  • org.json.JSONObject 有更多方便的方法

Most importantly are they interchangeable from client to Webservice? ie. can I send JSONObject to Webservice and have the Webservice believe the type is JsonObject (and vice versa)?

当然这应该有效。传输到 Web 服务的不是 class 实例,而是从 class 实例生成的 JSON 数据。另一方面,JSON 数据可以解析回任何类型的对象。

示例:

如果您有一个简单的 class 人:

public class Person {

 private String name = "Hans";
 private int age = 26;
}

这可以转换为 JSON 类似于:{"name":"Hans", "age":25}

生成的 JSON 字符串被发送到网络服务。

现在,在您的应用程序的另一端,或者在任何其他应用程序中,如果您有合适的解析器,这个 JSON 字符串可以被解析为任何 class。您甚至不需要 Java 来解析它。