2012-03-20 76 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());