Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何将包含数组元素的字符串转换为JSONArray_Android_Arrays - Fatal编程技术网

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

Android 如何将包含数组元素的字符串转换为JSONArray,android,arrays,Android,Arrays,我在尝试将包含数组的字符串加载到JSONArray中时遇到了一些问题。 我从包含movies数组的web服务中获取以下字符串: {“总计”:3部,“电影”:[],“链接”:{……} 我希望将此数组转换为JASONArray,并使用列表视图显示它。 我正在使用以下代码,但它不起作用 protected void onPostExecute(String result) { Log.d(TAG, "result: " + result); if (

我在尝试将包含数组的字符串加载到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();

    }
受保护的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)。