【问题标题】:How to parse JSON data without define array in JSON in Android Studio如何在Android Studio中解析JSON数据而不在JSON中定义数组
【发布时间】:2020-05-18 11:56:29
【问题描述】:

我是 Android 新手,我正在尝试开发一个应用程序,用于通过在编辑文本中输入代码来验证 ifsc 代码。

所以在这个项目中,我使用 Razorpay JSON 来获取数据,但是当我获取数据时,它以 JSON 格式显示,不可读格式。

如何将 JSON 数据转换为可读格式?

当我在 JSON 中添加方括号 [] 时,我的代码运行良好,但我无法编辑 JSON,因为它是第三方 JSON。

这是我的代码:

public class fetchdata extends AsyncTask<Void,Void,Void> {
    String data = "";
    String dataprart ;
    String singlePared = "";
    String datamanner = "";

    @Override
    protected Void doInBackground(Void... voids) {
        dataprart=ifsccode.getText().toString();
        String urls="https://ifsc.razorpay.com/"+dataprart;

        try {
            URL url = new URL(urls);
            HttpURLConnection httpURLConnection = (HttpURLConnection) 
            url.openConnection();

            InputStream inputStream = httpURLConnection.getInputStream();
            BufferedReader bufferedReader = new BufferedReader(new 
            InputStreamReader(inputStream));

            String line = "";
            while (line != null) {
                line = bufferedReader.readLine();
                data= data + line;
            }

            JSONArray JA = new JSONArray(data);
            for ( int i = 0; i<JA.length(); i++) {
                JSONObject JO = (JSONObject) JA.get(i);

                singlePared =
                    "BRANCH  --- " + JO.get("BRANCH") + "\n"+"\n"+
                    "STATE   ---" + JO.get("STATE") + "\n"+"\n"+
                    "DISTRICT ---" + JO.get("DISTRICT") + "\n"+"\n"+
                    "ADDRESS  --- " + JO.get("ADDRESS") + "\n"+"\n"+
                    "CITY  ---" + JO.get("CITY") + "\n"+"\n"+
                    "BANK   ---" + JO.get("BANK") + "\n";

                    datamanner = datamanner +singlePared;
            }
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (JSONException e) {
            e.printStackTrace();
        }

        return null;
    }

    @Override
    protected void onPostExecute(Void aVoid) {
        IFSc_validate.ifsc.setText(datamanner);
        super.onPostExecute(aVoid);
    }
}

【问题讨论】:

  • 对不起,我没有清楚地理解这个问题,但是你不能只使用另一个 jsonarray 来保存 razorpay json(这给你带来了困难)吗?
  • 在 JSON 数组中未声明如何在不包含 JSON 的情况下获取数据查看我的 json ifsc.razorpay.com/sbin0003400 方括号未定义。
  • 我还是不太明白.. 但是我认为你错过了 jsonparser。因为在我通常收到一个字符串后,我使用 jsonparser 将其转换为 jsonarray 或 jsonobject。
  • 先生,我得到的是 JSON 格式的结果,我如何得到可读格式的结果...
  • 请阅读Under what circumstances may I add “urgent” or other similar phrases to my question, in order to obtain faster answers? - 总结是这不是解决志愿者的理想方式,并且可能会适得其反。请不要将此添加到您的问题中。

标签: java android json android-studio


【解决方案1】:

这是因为响应是 JSONObject 而不是 JSONArray。

试试这些改变

        JSONObject JO = new JSONObject(data);
        singlePared = //continue        

删除 for 循环和 JSONArray 声明


您还应该考虑使用 volley 来获得 JSONObject 响应,这会让生活更轻松。

How to get and parse a JSON-object with Volley

【讨论】:

    猜你喜欢
    • 2020-10-23
    • 2013-01-29
    • 2013-04-22
    • 2013-09-29
    • 1970-01-01
    • 1970-01-01
    • 2015-10-24
    相关资源
    最近更新 更多