2 nana4ever nana4ever 于 2012.11.09 13:33 提问

Android中关于JSON paser的问题

在android Http有一个很长的字符串:

{"movies":[
{"movieId":"fmen71229238","eTitle":"Mission: Impossible - Ghost Protocol","cTitle":"不可能的任務:鬼影行動","imageUrl":"http://test.mobibon.com.tw/MovieGoTest/Pics/pl_fmen7122923814_s.jpg","releaseDate":"2011/12/15","saleType":"0"},
{"movieId":"fstw79905171","eTitle":"Seediq Bale","cTitle":"賽德克.巴萊(上)太陽旗","imageUrl":"http://test.mobibon.com.tw/MovieGoTest/Pics/pl_fstw7990517114_s.jpg","releaseDate":"2011/9/9","saleType":"0"},
{"movieId":"fytw91390391","eTitle":"You Are the Apple of My Eye","cTitle":"那些年,我們一起追的女孩","imageUrl":"http://test.mobibon.com.tw/MovieGoTest/Pics/pl_fytw9139039102_s.jpg","releaseDate":"2011/8/19","saleType":"0"}
]}

字符串是JSON格式,我希望它在不同的数组中排序,然后显示在Listview中,我使用以下的JSON parser。retSrc是一个长字符串。

JSONArray result = new JSONArray(retSrc);
        for(int i = 0;i < result.length(); i++)
        {
        JSONObject stock_data = result.getJSONObject(i);
        Log.i("bird","eTitle:"+stock_data.getString("eTitle"));
        }
        } finally {
        }
        }

Log文件Log.i("bird","eTitle:"+stock_data.getString("eTitle"));什么都没记录,我希望log文件是这样:Mission: Impossible - Ghost Protocol Seediq Bale.....etc
怎么在Listview中显示呢?Log文件是什么样的呢?

2个回答

clcurie_11
clcurie_11   2012.12.12 10:44
已采纳

你也可以使用Gson,给API提供Json解析。这个很简单,你只需要创建你想用的对象的类型。

nana4ever
nana4ever 谢谢你的回答,虽然问题已经解决了,但是你提供的这个方法也很好。
接近 5 年之前 回复
csh_34
csh_34   2012.11.09 17:30

显然,顶级的json 文件不应该是JSONArray而是JSONObject.

添加以下的代码:

JSONObject obj = new JSONOBject(retSrc);
JSONArray movieArray = obj.getJSONArray("movies");
//然后加上你的代码

Csdn user default icon
上传中...
上传图片
插入图片