当前位置: 首页 > 知识库问答 >
问题:

如何解决JSONArray问题,无法获取数据,Android Studio

冯野
2023-03-14

我在Android Studio中遇到了一些JSON问题我一直在看并阅读一些示例,但仍然不知道如何将这些数据从数据库传递到“Movie”类中,就像Java代码中显示的那样。

private void getMoviesFromDB(int id) {

    AsyncTask<Integer, Void, Void> asyncTask = new AsyncTask<Integer, Void, Void>() {
        @org.jetbrains.annotations.Nullable
        @Override
        protected Void doInBackground(Integer... movieIds) {

            OkHttpClient client = new OkHttpClient();
            Request request = new Request.Builder()
                    .url("http://192.168.8.101/databaseproject/getMenu.php?category=" + category)
                    .build();
            try {
                Response response = client.newCall(request).execute();
                Log.d(TAG, "response: " + response.body().string());
                JSONArray array = new JSONArray(response.body().string());

                for (int i = 0; i < array.length(); i++) {

                    JSONObject object = array.getJSONObject(i);

                    Movie movie = new Movie(object.getInt("food_id"), object.getString("food_title"),
                            object.getString("food_image"), object.getString("food_description"), object.getString("food_price"));

                    MainActivity.this.movies.add(movie);
                }


            } catch (IOException e) {
                e.printStackTrace();
            } catch (JSONException e) {
                e.printStackTrace();
            }
            return null;
        }

日志显示错误位于MainActivity的第139行和第127行

139:JSONArray数组=新的JSONArray(response.body().string());

127:AsyncTask AsyncTask=new AsyncTask(){...

有人能帮帮我吗?我不明白怎么解决这个JSON的特殊情况...

提前道谢。

共有1个答案

文志学
2023-03-14

您可能希望将响应放入一个字符串而不是JSONArray中,然后使用该字符串创建一个JSONObject并从那里开始。

可以粘贴JSON吗?

 类似资料:
  • 本文向大家介绍如何解决数据不平衡问题?相关面试题,主要包含被问及如何解决数据不平衡问题?时的应答技巧和注意事项,需要的朋友参考一下 这主要是由于数据分布不平衡造成的。解决方法如下: 采样,对小样本进行加噪声采样,对大样本进行下采样 进行特殊的加权,如在Adaboost中或者SVM 采用对不平衡数据集不敏感的算法 改变评价标准:用AUC|ROC来进行评价 考虑数据的先验分布 https://blog

  • 上面的代码,在 python3.10 下面没有问题 但是在 python3.11 上运行,就会报错

  • 使用codeSandBox实现同antd-design官网一样的组件演示,但是需要的依赖部署在公司内网私服上?导致codeSandBox无法fetch到denpencies,该如何解决呢? 想过把组件库上传到公网,但是领导不允许

  • 我试图从我的localhost获取数据,就像这样: 我正在使用浏览器。为防止出现问题,我使用此扩展: 但仍然得到的错误: 没有得到数据。我需要在这里做哪些更改?有人帮我吗?

  • 当我尝试运行应用程序时,它工作正常。但是当我构建签名apk时,出现了错误 失败:构建失败,出现异常。 问题:任务“:app:lintVitalRelease”的执行失败 无法解析配置“:image_picker_android:调试单元测试运行时类路径”的所有项目。无法转换 bcprov-jdk15on-1.68.jar (org.bouncycastle:bcprov-jdk15on:1.68)

  • 这是我打印日志时的JSON结果。我无法从这个结果中获得数据。请建议如何从这个结果中获得数据。错误显示of类型org.json.jsonArray不能转换为JSONObject,我知道已经有很多文章与此相关,但我不明白如何获取数据。