Home > Blockchain >  Read a specific value from JSON in Java
Read a specific value from JSON in Java

Time:10-23

I am making an app in android studio using an API that returns the following:

[{"domains": ["upes.ac.in"], "country": "India", "state-province": "Dehradun", "web_pages": ["https://www.upes.ac.in/"], "name": "University of Petroleum and Energy Studies", "alpha_two_code": "IN"}]

I run it as follows:

public void onResponse(String response) {
        listaUniversidades = new ArrayList<>();
            JSONArray jsonArray = new JSONArray(response);

            String nombreUni, pais, url;

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

                nombreUni = jsonArray.getJSONObject(i).getString("name");
                pais = jsonArray.getJSONObject(i).getString("country");
                url = jsonArray.getJSONObject(i).getString("web_pages"));
              
                texto.setText(url);

                listaUniversidades.add(new Universidad(nombreUni, pais, url));
            }}

The thing is that the web_pages returns the following: ["http://.www.upes.ac.in/"]

How could I make it return the correct url? Since that way I can not access the university website.

Thank you!

CodePudding user response:

Have you verified that the API returns the expected value for web_pages? You can set a breakpoint on the line

String nombreUni, pais, url;

And then inspect the variable jsonArray. I think the incorrect value that you got is most likely because the API returns that value.

CodePudding user response:

I will assume that you aways want to get the first "web_page" inside the "web_pages" array.

You can try to convert the "web_pages" attribute to an array before trying to get the first element, like this:

url = jsonArray
    .getJSONObject(i)
    .getJSONArray("web_pages"))
    .getJSONObject(0)
    .toString();
  • Related