【发布时间】:2021-03-01 07:02:53
【问题描述】:
我是 Android 新手。我想创建一个元素周期表应用程序。我在 github 上找到了 json 文件和 url,但是 json 没有数组名称,我怎样才能得到对象。我正在关注 CS50 Android 轨道来编写此应用程序,但我正在使用另一个 Json 文件。教程链接https://youtu.be/OJQ8Cse6-Ss 下面是我的程序代码:
public void loadElement()
{
String url = "https://periodic-table-api.herokuapp.com/";
JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
JSONArray arr = new JSONArray(response);
for (int i = 0;i < arr.length(); i++)
{
JSONObject object = arr.getJSONObject(i);
element.add(new Element(
object.getString("name"),
object.getString("symbol")
));
}
notifyDataSetChanged();
} catch (JSONException e) {
Log.e("example", "Json error");
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e("example", "Element list error");
}
});
requestQueue.add(request);
}
Json文件的urlhttps://periodic-table-api.herokuapp.com 下面是 Json 文件(这里只是前两个对象):
[{
"atomicMass": "1.00794(4)",
"atomicNumber": 1,
"atomicRadius": 37,
"boilingPoint": 20,
"bondingType": "diatomic",
"cpkHexColor": "FFFFFF",
"density": 0.0000899,
"electronAffinity": -73,
"electronegativity": 2.2,
"electronicConfiguration": "1s1",
"groupBlock": "nonmetal",
"ionRadius": "",
"ionizationEnergy": 1312,
"meltingPoint": 14,
"name": "Hydrogen",
"oxidationStates": "-1, 1",
"standardState": "gas",
"symbol": "H",
"vanDelWaalsRadius": 120,
"yearDiscovered": 1766},{
"atomicMass": "4.002602(2)",
"atomicNumber": 2,
"atomicRadius": 32,
"boilingPoint": 4,
"bondingType": "atomic",
"cpkHexColor": "D9FFFF",
"density": 0.0001785,
"electronAffinity": 0,
"electronegativity": "",
"electronicConfiguration": "1s2",
"groupBlock": "noble gas",
"ionRadius": "",
"ionizationEnergy": 2372,
"meltingPoint": "",
"name": "Helium",
"oxidationStates": "",
"standardState": "gas",
"symbol": "He",
"vanDelWaalsRadius": 140,
"yearDiscovered": 1868}]
【问题讨论】:
标签: java android json object url