2015-05-21 67 views
0

我遇到問題,我從API調用中收到JSONArray(來自org.json.simple.JSONArray庫),我必須將此JSONArray傳遞給新頁面/意圖試圖在我的Android應用程序中傳輸信息。將org.json.simpleJSONArray傳遞給Android中的Intent作爲額外

接收來自API調用信息,我得到一個JSONArray,我現在轉換爲字符串,並將其傳遞給新Intent作爲字符串額外的費用。

另一方面,當我收到字符串額外的時候,我無法將它轉換回JSONArray。調用new JSONArray(receivedString)導致以下錯誤:

JSONArray cannot be applied to java.lang.String 

不管怎麼說,我看到了這一點: How to convert String to JSONObject in Java但它並不能幫助我,因爲API強迫我使用json.simple庫:

import org.json.simple.JSONArray; 
import org.json.simple.JSONObject; 
import org.json.simple.parser.JSONParser; 
import org.json.simple.parser.ParseException; 

因此,我無法將簡單的JSON轉換爲常規的JSONArray(從org.json.JSONArray開始,因爲org.json.*org.json.simple發生衝突)。

例如,如果我用

org.json.JSONArray 
org.json.JSONObect 

取而代之的是簡單的圖書館,我得到一個錯誤:

java.lang.ClassCastException: org.json.simple.JSONArray cannot be cast to org.json.JSONArray 

但是,如果你不需要使用「簡單」是這裏

JSONObject jsonObj = new JSONObject("String"); 

所以我不能使用org.json,我需要找到歐:這曾在上面的鏈接找到了解決辦法t一種將包含JSONArray格式的字符串轉換爲JSONObject的方式,以便我可以使用org.json.simple library解析它。

+0

你是什麼意思_org.json。*與org.json.simple_衝突? –

+0

@SotiriosDelimanolis我編輯了這個問題來更準確地描述我的問題。 – jameswoo

+0

'org.json'和'org.json.simple'是來自兩個不同庫的兩個不同的包。他們碰巧有同名的班級。沒有理由期望可以轉換到另一個。 –

回答

-1

如果你必須使用org.json.simple.*,這裏是轉換,看起來像JSONArrays成解析的JSONObject小號

String searchResponseJSON = API.search(term, location); 

JSONParser parser = new JSONParser(); 
JSONObject response = null; 
try { 
    response = (JSONObject) parser.parse(searchResponseJSON); 
} catch (ParseException pe) { 
    System.out.println("Error: could not parse JSON response:"); 
    System.out.println(searchResponseJSON); 
    System.exit(1); 
}"); 

我希望這可以幫助那裏的人試圖將字符串轉換成可分析JSONObjects與Java字符串的解決方案使用org.json.simple庫!

+0

你的問題表明你試圖解析一個包含JSON數組的字符串,但是你的回答中收到了一個'JSONObject'。 –

+0

不,我說我收到一個字符串,看起來像一個JSON數組,你能指向我在哪裏我犯了一個錯誤? – jameswoo

+0

你的問題討論了在'Intent'中傳遞一個包含json數組值的String。你的回答根本沒有解決json數組問題。 –

相關問題