Java对象到JSONObject

Java对象到JSONObject,java,android,json,Java,Android,Json,我试图做的是创建一个toJSONObject()方法,该方法返回JSONObject,其中包含来自对象的一些数据作为JSONObject 这是我真正想调用的方法 public JSONObject(java.lang.Object object, java.lang.String[] names) 其中: object-一个对象,该对象具有用于生成JSONObject的字段。 名称-字符串数组,从对象获取的字段名称 然而,eclipse并没有承认这个特定的构造函数调用是有效的,尽管有很多理由支

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

这是我真正想调用的方法

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

object
-一个对象,该对象具有用于生成JSONObject的字段。
名称
-字符串数组,从对象获取的字段名称

然而,eclipse并没有承认这个特定的构造函数调用是有效的,尽管有很多理由支持它


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

要在java中实现JSON功能,必须有JSON库。JSON库还需要以下“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);
    }
}  
要运行此示例,您必须遵循以下几个步骤:

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和其他支持jar 将这些JAR添加到类路径中 创建并保存FirstJSONJava.java 编译并执行它

源代码 http://www.roseindia.net/tutorials/json/jsonobject-java-example.shtml你有两个选择

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

public static MyObject fromJson(String json)
public String toJson()
每个模型对象的方法。每个的实现都必须使用org.json库来填充对象的字段,并分别从对象的字段构建json和

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

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

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

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

GSON也不错,但不幸的是,我注意到您正在进行Android开发,HTC为我们搞砸了,所以如果您决定使用GSON库。

您可以使用:

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

也许他能帮你。你看过格森吗?使用一个好的库,如。似乎是Meth的JSONObject库版本出错。Android不支持您尝试使用的构造函数。您可能会更幸运地使用其他一些建议,或者尝试以不同的方式实现它。以下是JSONObject的Android文档: