我要做的是创建一个toJSONObject()
方法,该方法返回JSONObject,它将来自对象的一些数据作为JSONObject返回!
这是我真正想要的方法,
public JSONObject(java.lang.Object object, java.lang.String[] names)
其中:
object
- 一个对象,其中包含应该用于制作JSONObject的字段
names
- 一个字符串数组,即从对象中获取的字段的名称。
然而,eclipse并不承认这个特定的构造函数调用是有效的,尽管它有online documentation。
我怎样才能让它为我工作?
答案 0 :(得分:1)
你有两个选择,
一个。如果你想坚持使用标准的org.gson库,你可以编写自己的
public static MyObject fromJson(String json)
public String toJson()
每个模型对象的方法。每个的实现必须使用org.json库来填充对象的字段,并分别从对象的字段构建JSON。
湾使用GSON或jackson设计将执行对象绑定。 GSON更简单,杰克逊更快。
实际上,我做了所有三个的性能评估,它是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());