无法正确创建 JSONObject

用户2966853

我想从服务器获取图像到我的 Android 应用程序中。我的第一步是:

我有来自服务器的这个 JSON 字符串数组

{"results":"[{\"url\":\"https:\\\/\\\/augmentedandroidapp.000webhostapp.com\\\/images\\\/kamara1.jpg\"},{\"url\":\"https:\\\/\\\/augmentedandroidapp.000webhostapp.com\\\/images\\\/kamara2.jpg\"},{\"url\":\"https:\\\/\\\/augmentedandroidapp.000webhostapp.com\\\/images\\\/kamara3.jpg\"}]"}

我从服务器获得了我的应用程序中的网址,代码如下并且工作正常。

  private void getURLs() {
    class GetURLs extends AsyncTask<String, Void, String> {
        ProgressDialog loading;
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            loading = ProgressDialog.show(GalleryTargets.this, "Loading...", "Please Wait...", true, true);
        }
        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            loading.dismiss();
            Toast.makeText(GalleryTargets.this,s,Toast.LENGTH_LONG).show();
            imageJSON = s;
            Log.e(LOGTAG, "Succeed Read url" + imageJSON);         
            extractJSON(imageJSON);
        }
        @Override
        protected String doInBackground(String... strings) {
            String uri = strings[0];
            BufferedReader bufferedReader = null;
            try {
                URL url = new URL(uri);
                HttpURLConnection con = (HttpURLConnection) url.openConnection();
                StringBuilder sb = new StringBuilder();
                bufferedReader = new BufferedReader(new InputStreamReader(con.getInputStream()));
                String json;
                while ((json = bufferedReader.readLine()) != null) {
                    sb.append(json);
                }
                return sb.toString().trim();
            } catch (Exception e) {
                return null;
            }
        }
    }
    GetURLs gu = new GetURLs();
    gu.execute(newurl);
}

但是,我想使用下面的这种方法将 json 提取到一个新的 JSON 对象中,但抛出异常,未创建 Json 对象。任何想法为什么会发生此异常?先感谢您!

private void extractJSON(String jsonString){
    try {
        JSONObject jsonObject = new JSONObject(jsonString);
        JSONArray jArray  = jsonObject.getJSONArray("results");
        for (int i = 0; i < jArray.length(); i++) {
            JSONObject oneObject = jArray.getJSONObject(i);
            oneObject.getString("url");//
        }
        Log.e(LOGTAG, "JsonArray Succeed" );

    } catch (JSONException e) {
        e.printStackTrace();
        Log.e(LOGTAG, "JsonArray exception");

    }
}
贾纳克

而不是JSONArray jArray = jsonObject.getJSONArray("results");尝试JSONArray jArray = new JSONArray (jsonObject.getString("results"));

你要求一个 json 数组,但它是一个字符串。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章