繁体   English   中英

如何在 Android Studio 中的 JSON 中解析 JSON 数据而不定义数组

[英]How to parse JSON data without define array in JSON in Android Studio

我是 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);
    }
}

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

试试这些改变

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

删除 for 循环和 JSONArray 声明


此外,您应该考虑使用 volley 来获得 JSONObject 响应,这将使生活更轻松。

如何使用 Volley 获取和解析 JSON 对象

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM