0

I have created an API with nodejs and mongodb, where i can get and set data, however my json array doesn't have a name. I wanted to get that data to my android application and I found this solution online, but it gets the data from an json array called "hits", is there a way I can adjust the code to fit format of database, or can I add a name to my json array so I can use the same solution?

the solution i found

        String url = "https://api.myjson.com/bins/12qqdf";

    JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, url, null,
            new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                    try {
                        JSONArray jsonArray = response.getJSONArray("hits");

                        for (int i = 0; i < jsonArray.length(); i++) {
                            JSONObject hit = jsonArray.getJSONObject(i);

                            String address = hit.getString("address");
                            String longi = hit.getString("longitude");
                            String lat = hit.getString("latitude");

                            mExampleList.add(new ExampleItem(address, longi, lat));
                        }

                        mExampleAdapter = new ExampleAdapter(MainActivity.this, mExampleList);
                        mRecyclerView.setAdapter(mExampleAdapter);

                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            error.printStackTrace();
        }
    });

    mRequestQueue.add(request);
}

my database format

[  
{  
  "_id":"5d66c8e2b957510ea064ccfa",
  "address":"Rruga - fdff",
  "latitude":34.343232,
  "longitude":12.322736,
  "__v":0
},
{  
  "_id":"5d66c8ebb957510ea064ccfb",
  "address":"Rruga - 111",
  "latitude":34.343232,
  "longitude":12.322736,
  "__v":0
},
{  
  "_id":"5d66c8f8b957510ea064ccfc",
  "address":"Rruga - 222",
  "latitude":32.343232,
  "longitude":22.322736,
  "__v":0
},
{  
  "_id":"5d66cb98c6e86132d46c2fed",
  "address":"Rruga - zzz",
  "latitude":34.343232,
  "longitude":12.322736,
  "__v":0
}
]

1 Answer 1

2

Based on your JSON change onResponse(JSONObject response) to onResponse(JSONArray jsonArray)

Finally remove below line. It should work

JSONArray jsonArray = response.getJSONArray("hits");
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.