2012-03-20 53 views
3

我想要做的是创建一个toJSONObject()方法,该方法返回JSONObject对象中的一些数据作为JSONObject!Java对象到JSONObject

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

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

其中:

object - 有应该用来做一个JSONObject领域的对象。
names - 一个字符串数组,从对象中获取的字段名称。

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

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

+1

你看看GSON? http://code.google.com/p/google-gson/ – 2012-03-20 18:18:16

+0

对我来说似乎是JSONObject库版本的错误 – Kartoch 2012-03-20 18:24:16

+1

您尝试使用的构造函数在Android中不受支持。使用其他一些建议或尝试以不同的方式实施它可能会有更好的运气。以下是JSONObject的Android文档:http://developer.android.com/reference/org/json/JSONObject.html – Aldryd 2012-03-20 18:25:38

回答

1

你有两种选择,

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

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

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

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

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

真的,我做了所有三者的性能EVAL,它去1 org.json,杰克逊和GSON,与GSON幸福〜10倍的速度较慢。但比较org.json并不公平,因为它不包含对象绑定代码。

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

0

你需要为它安装JSONLibrary然后使用Json对象并使用该库作为外部jar。试试吧。

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库为改造豆类,收藏,地图,Java数组和XML JSON,然后重新转换回豆类,收藏,地图和其他。

在这个例子中,我们将使用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的罐子等配套罐 添加这些罐子到类路径 创建和保存FirstJSONJava.java 编译并执行

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

1

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

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

0

您可以使用:

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