Java OBJECT到JSONObject

时间:2012-03-20 18:16:19

标签: java android json

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

这是我真正想要的方法,

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

其中:

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

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

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

4 个答案:

答案 0 :(得分:1)

你有两个选择,

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

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

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

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

  

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

实际上,我做了所有三个的性能评估,它是1. org.json,jackson和gson,gson慢了~10倍。然而,比较org.json并不公平,因为它不包含对象绑定代码。

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

要在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 将这些jar添加到类路径中 创建并保存FirstJSONJava.java 编译并执行

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

答案 3 :(得分:0)

您可以使用:

new org.json.JSONObject (
  object.get(
    "subObject").
  toString());