3

String从服务器收到以下响应:

{"fid":"1272","uri":"http://someurl/services/file/1272"}

我需要将其转换为JSONArray. 有什么帮助吗?

顺便说一句,我试过这个,但它不起作用:

String response=getResponseFromServer();
JSONArray array = new JSONArray(response);

我得到错误:

org.json.JSONException: Value {"fid":"1272","uri":"http://someurl/services/file/1272"} of type org.json.JSONObject cannot be converted to JSONArray
4

2 回答 2

12

如果您正在谈论在 java库中使用 JSON,那么由于您的输入字符串是 JSON 对象,而不是 JSON 数组,您应该首先使用 JSONObject 加载它:

String response=getResponseFromServer();
JSONObject jsonObject = new JSONObject(response);

之后,您可以使用toJSONArray()将 JSONObject 转换为 JSONArray 给定一个键字符串数组:

String[] names = JSONObject.getNames(jsonObject);
JSONArray jsonArray = jsonObject.toJSONArray(new JSONArray(names));
于 2013-06-09T17:26:21.520 回答
5

如果你在 StackOverflow 上搜索Java String to JSONArray,你应该得到这个答案:Converting from JSONArray to String then back again

JSONArray jArray;
String s = jArray.toString(); // basically what you have ;)
JSONArray newJArray = new JSONArray(s);
于 2013-06-09T17:25:55.813 回答