【问题标题】:Java OBJECT to JSONObjectJava 对象到 JSONObject
【发布时间】:2012-04-05 06:19:50
【问题描述】:

我要做的是创建一个 toJSONObject() 方法,该方法返回 JSONObject,其中包含来自对象的一些数据作为 JSONObject!

这是我真正想调用的方法,

public JSONObject(java.lang.Object object, java.lang.String[] names)

地点:

object - 一个对象,其中包含应用于创建 JSONObject 的字段。
names - 字符串数组,即要从对象中获取的字段名称。

然而,eclipse 并不承认这个特定的构造函数调用是有效的,尽管它有online documentation

我怎样才能让它为我工作?

【问题讨论】:

标签: java android json


【解决方案1】:

你有两个选择,

一个。如果你想坚持使用标准的 org.gson 库,你可以自己编写

public static MyObject fromJson(String json)
public String toJson()

每个模型对象的方法。每个的实现都必须使用 org.json 库来填充对象的字段,并分别从对象的字段构建 JSON。

b.使用按设计将执行对象绑定的 GSON 或杰克逊。 GSON 更简单,jackson 更快。

https://sites.google.com/site/gson/gson-user-guide

真的,我对所有三个都进行了性能评估,结果是 1.org.json、jackson 和 gson,而 gson 的速度要慢约 10 倍。然而,比较 org.json 并不公平,因为它不包含对象绑定代码。

如果您有一个直接映射到 JSON 的简单平面模型对象,那么它们都非常简单。如果您想要自定义映射或具有复杂结构,则需要阅读文档并编写一些自定义序列化/反序列化代码。

【讨论】:

    【解决方案2】:

    如前所述,尝试Jackson。它不仅更快,而且从/到 JSON 的 POJO 转换为您节省了时间和额外的编码。

    GSON 也不错,但不幸的是我注意到你在做 Android 开发,HTC 为我们搞砸了,所以如果你决定使用 GSON remember to jarjar 库。

    【讨论】:

      【解决方案3】:

      要在 java 中具有 JSON 的功能,您必须具有 JSON-lib。 JSON-lib 还需要以下“JAR”文件:

      commons-lang.jar 
      commons-beanutils.jar
      commons-collections.jar
      commons-logging.jar
      ezmorph.jar
      json-lib-2.2.2-jdk15.jar
      

      JSON-lib 是一个 java 库,用于将 bean、集合、映射、Java 数组和 XML 转换为 JSON,然后将它们重新转换回 bean、集合、映射等。

      在本例中,我们将使用 JSONObject 类来创建 JSONObject 的对象,然后我们将打印这些对象值。为了使用 JSONObject 类,我们必须导入以下包“net.sf.json”。为了在这个对象中添加元素,我们使用了 put() 方法。 FirstJSONJava.java的完整示例代码如下:

      import net.sf.json.JSONObject;
      
      public class FirstJSONJava
      {
              public static void main(String args[]) {
              JSONObject object=new JSONObject();
              object.put("name","Amit Kumar");
              object.put("Max.Marks",new Integer(100));
              object.put("Min.Marks",new Double(40));
              object.put("Scored",new Double(66.67));
              object.put("nickname","Amit");
              System.out.println(object);
          }
      }  
      

      要运行此示例,您必须执行以下几个步骤:

      下载 JSON-lib jar 和其他支持的 Jars 将这些 jars 添加到您的类路径中 创建并保存 FirstJSONJava.java 编译并执行

      源码http://www.roseindia.net/tutorials/json/FirstJSONJava.zip http://www.roseindia.net/tutorials/json/jsonobject-java-example.shtml

      【讨论】:

        【解决方案4】:
        new org.json.JSONObject (
          object.get(
            "subObject").
          toString());
        

        【讨论】:

          猜你喜欢
          • 2021-12-08
          • 1970-01-01
          • 1970-01-01
          • 2016-05-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-08-10
          相关资源
          最近更新 更多