【发布时间】:2019-10-27 16:16:56
【问题描述】:
我在 android 上使用 volley 库,我必须解析这个 JSON 并用一些来自 volley 响应的值填充我的微调器,这些值嵌套在不同的 json 对象中。
这里是 JSON:
{
"Count": 2,
"0": {
"Distributore Information": {
"id_distributore": "1",
"NomeDistributore": "Colonnina 1",
}
},
"1": {
"Distributore Information": {
"id_distributore": "2",
"NomeDistributore": "Colonnina 2",
}
}
}
这里是我写的代码:
private void getInfoColonnina(){
String url = "https://api.thisurlsidhiddenbutitsworknp_module_json";
final SharedPreferences myPref = getSharedPreferences("loginPref", MODE_PRIVATE);
final SharedPreferences.Editor myPreff = myPref.edit();
RequestQueue requestQueue = Volley.newRequestQueue(this);
StringRequest stringRequest = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Toast.makeText(InizioTurnoActivity.this, "CHIAMATA INFOCOLONNINA AVVENUTA CON SUCCESSO", Toast.LENGTH_SHORT).show();
try {
JSONObject jsonObject = new JSONObject(response);
Iterator<String> keys = jsonObject.keys();
while(keys.hasNext()) {
String key = keys.next();
if (jsonObject.get(key) instanceof JSONObject) {
JSONObject infoDistributore = jsonObject.getJSONObject("Distributore Information");
LitriColonnina = infoDistributore.getString("litriiniziocolonna");
id_distributore = infoDistributore.getString("id_distributore");
NomeDistributore = infoDistributore.getString("NomeDistributore");
}
}
final DistrBean distrTest = new DistrBean(NomeDistributore, id_distributore, LitriColonnina);
MaterialSpinner spinner = (MaterialSpinner) findViewById(R.id.spinner);
spinner.setItems(distrTest.getNomeDistributore());
spinner.setOnItemSelectedListener(new MaterialSpinner.OnItemSelectedListener<String>() {
@Override public void onItemSelected(MaterialSpinner view, int position, long id, String item) {
Toast.makeText(InizioTurnoActivity.this, distrTest.getIdDistributore(), Toast.LENGTH_SHORT).show();
myPreff.putString("id_distributore", distrTest.getIdDistributore());
myPreff.commit();
}
});
} catch (JSONException e) {
e.printStackTrace();
}
所以代码应该迭代并创建填充微调器但不起作用的对象。 Ff 我只解析一个对象并填充微调器,它工作正常并且看起来也很好,但我真的不知道如何通过 JSON 循环获取我需要的所有数据,每个“id_distributore”和“NomeDistributore”有什么想法吗?
提前致谢!
【问题讨论】:
标签: android json android-volley