将org.json.simpleJSONArray作为Extra传递给Android中的Intent

时间:2015-05-21 19:01:50

标签: java android json android-intent jsonobject

我遇到问题,我从API调用收到JSONArray(来自org.json.simple.JSONArray库),我必须在尝试转移时将此JSONArray传递给新页面/意图我的Android应用程序中的信息。

来自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

但是,如果你不需要使用'simple',那么这个解决方案在上面的链接中找到了解决方法:

JSONObject jsonObj = new JSONObject("String");

所以我无法使用org.json,我需要找到一种方法将包含JSONArray格式的字符串转换为JSONObject,这样我就可以使用org.json.simple library

1 个答案:

答案 0 :(得分:-1)

如果必须使用org.json.simple.*,这里是将看起来像JSONArrays的java字符串转换为可解析的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库将字符串转换为可解析的org.json.simple