2014-06-20 80 views
-1

有沒有方法可以將已經序列化爲JSON的JSON轉換爲JSONObject,而無需安裝額外的庫。Android將字符串反序列化爲JSONObject而不使用庫

我有這樣的JSON:

{ 
    "asd": false, 
    "qwe": false, 
    "zxc": false, 
    "qaxz": false, 
    "asdqwe": false, 
    "asdqwe": false, 
    "wexd": false 
} 

嵌入式作爲一個字符串到另一個JSON對象( 「用戶」),被命名爲 「app_settings」

那我試試這個:

JSONObject settings = user.getJSONObject(JSONKeys.USER_SETTINGS); 

這裏是我得到的例外:

06-20 12:15:19.105: W/System.err(17085): 
org.json.JSONException: Value {"asd":false,"qwe":false,"zxc":false,"qaxz":false,"asdqwe":false,"asdqwe":false,"wexd":false} 
at app_settings of type java.lang.String cannot be converted to JSONObject 

SOLUTION

更改:

JSONObject settings = user.getJSONObject(JSONKeys.USER_SETTINGS); 

JSONObject settings = new JSONObject(user.getString(JSONKeys.USER_SETTINGS)); 

和它的工作

+0

什麼是「附加」庫? – chrylis

+0

讓我明白這一點,用戶是另一個JSONObject,這個usr jsonobject有一個key = app_settings的鍵值對,值等於你提到的jsonobject。你想把這個jsonobject存儲在另一個jsonobject中? –

回答

1

,你可以簡單地做

JSONObject obj = new JSONObject(your_string)

+0

我這樣做了,但我得到一個異常。我將它粘貼在問題 –

+0

ok ..更新您的問題 –

+0

當你將其轉換成json時,它是否會拋出異常 –

1

,只要把JSONObject庫已經包含在你的Android項目,你可以簡單地使用

JSONObject j = new JSONObject(YOUR STRING); 
1

,而不是做

JSONObject settings = new JSONObject(user.getString(JSONKeys.USER_SETTINGS)); 

我想你可以用

JSONObject settings = user.getJSONObject(JSONKeys.USER_SETTINGS); 

爲了避免不必要的json-> string-> json解析。

相關問題