我遇到问题,我从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
。
答案 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
!