如何将包含数组元素的字符串转换为JSONArray

时间:2013-11-13 10:05:37

标签: android arrays

在尝试将包含数组的字符串加载到JSONArray中的过程中,我遇到了一些问题。 我从包含movies数组的web服务中获取以下字符串: { “总”:3 “电影”:[], “链接”:{......}“}

我希望将此数组转换为JASONArray并使用列表视图显示它。 我正在使用以下代码,它无法正常工作....

        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();

    }

我希望这里的帖子可以帮助我解决问题。

1 个答案:

答案 0 :(得分:0)

改变这个:

JSONObject responseObject = new JSONObject(result);

到此:

JSONObject responseObject = (JSONObject) JSONValue.parse(result);

然后您就可以获得JSONArray