Android 如何将包含数组元素的字符串转换为JSONArray
我在尝试将包含数组的字符串加载到JSONArray中时遇到了一些问题。 我从包含movies数组的web服务中获取以下字符串: {“总计”:3部,“电影”:[],“链接”:{……} 我希望将此数组转换为JASONArray,并使用列表视图显示它。 我正在使用以下代码,但它不起作用Android 如何将包含数组元素的字符串转换为JSONArray,android,arrays,Android,Arrays,我在尝试将包含数组的字符串加载到JSONArray中时遇到了一些问题。 我从包含movies数组的web服务中获取以下字符串: {“总计”:3部,“电影”:[],“链接”:{……} 我希望将此数组转换为JASONArray,并使用列表视图显示它。 我正在使用以下代码,但它不起作用 protected void onPostExecute(String result) { Log.d(TAG, "result: " + result); if (
protected void onPostExecute(String result) {
Log.d(TAG, "result: " + result);
if (result==null || result.length()==0){
// no result:
return;
}
//clear the list
moviesList.clear();
try {
//turn the result into a JSON object
Log.d(TAG, "create responseObject: ");
JSONObject responseObject = new JSONObject(result);
Log.d(TAG, responseObject.toString());
// get the JSON array named "movies"
JSONArray resultsArray = responseObject.getJSONArray("movies");
Log.d(TAG, "JSONArray lenght: " + resultsArray.length());
// Iterate over the JSON array:
for (int i = 0; i < resultsArray.length(); i++) {
// the JSON object in position i
JSONObject movieObject = resultsArray.getJSONObject(i);
Log.d(TAG, "movieObject (from array) : " + movieObject.toString());
// get the primitive values in the object
String title = movieObject.getString("title");
String details = movieObject.getString("synopsis");
//put into the list:
Movie movie = new Movie(title, details, null,null);
//public Movie(String title, String details, String urlnet, String urldevice) {
moviesList.add(movie);
}
} catch (JSONException e) {
e.printStackTrace();
}
//refresh listView:
adapter.notifyDataSetChanged();
}
受保护的void onPostExecute(字符串结果){
Log.d(标签“结果:”+结果);
if(result==null | | result.length()==0){
//无结果:
返回;
}
//清除列表
moviesList.clear();
试一试{
//将结果转换为JSON对象
d(标记“createresponseobject:”);
JSONObject responseObject=新JSONObject(结果);
Log.d(标记,responseObject.toString());
//获取名为“movies”的JSON数组
JSONArray resultsArray=responseObject.getJSONArray(“电影”);
Log.d(标记“JSONArray length:+resultsArray.length());
//迭代JSON数组:
对于(int i=0;i
我希望这里的帖子能帮我解决这个问题。改变这个:
JSONObject responseObject = new JSONObject(result);
为此:
JSONObject responseObject = (JSONObject) JSONValue.parse(result);
然后你可以得到你的
JSONArray
“它不工作”…什么不工作?你有错误吗?如果有,也发布它。谢谢。你能发布更多关于你的Json对象的信息吗?{“total”:3,“movies”:[],“links”:{……}
还不够,至少显示电影的样子。谢谢我没有从输入字符串中获得电影的JSONArray。没有错误。对不起,我是android新手,在这里我不能发布超过2个链接…我已经将我的结果字符串(log.d(TAG,“result:+result”);)打印到日志中,日志看起来是这样的:{“total”:3,“movies”:[],“links”:{“self”:“}”,link_模板:“{search term}&page_limit={results per page}&page={page number}”你的movies
是emptytx,但什么是:JSONValue?我得到以下错误:JSONValue无法解析用于JSON我使用这个:这个库有这个字段。作为新手,我不知道怎么做……我已经下载了这个库并将它保存在我的项目中的libs下,如何包含它?我还尝试将它放在libs下com.example.mymovies1(包)和:import com.example.mymovies1.*;在这两种情况下,我仍然会得到错误。如果你能为新手解释一下,我会很合适…(:转到项目->属性->Java构建路径->库->添加外部JAR)。