android - 从节点 js API 获取 json 数据
问题描述
我用 nodejs 和 mongodb 创建了一个 API,我可以在其中获取和设置数据,但是我的 json 数组没有名称。我想将这些数据获取到我的 android 应用程序,我在网上找到了这个解决方案,但是它从一个名为“hits”的 json 数组中获取数据,有没有办法可以调整代码以适应数据库的格式,或者我可以添加我的 json 数组的名称,以便我可以使用相同的解决方案?
我找到的解决方案
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);
}
我的数据库格式
[
{
"_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
}
]
解决方案
根据您的 JSON 更改onResponse(JSONObject response)
为onResponse(JSONArray jsonArray)
最后删除下面的行。它应该工作
JSONArray jsonArray = response.getJSONArray("hits");
推荐阅读
- google-cloud-platform - 无法使用服务帐户订阅 google pub 子主题
- node.js - 找不到 Node.js 模块
- wso2 - WSO2 sh wso2server.sh -Dmigrate -Dcomponent=identity 没有运行迁移脚本
- r - 根据文件名列出文件
- android - 匿名类作为类成员
- d3.js - 如何在 topoJSON 网格上进行扭曲
- ios - UITableViewController 上的自定义弹出窗口是可滑动的 - 如何防止 - Swift
- mysql - MySQL:从结果中排除一些行?
- asp.net - 如何在 SQL Server 中创建在特定时间仅执行一次的触发器
- python - 如何在python3中的'\ + 234'字符串中提取'\ +'