Я использую библиотеку залпов на Android, и мне нужно проанализировать этот JSON и заполнить мой счетчик некоторыми значениями, полученными из ответа залпа, которые вложены в другой объект 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();
}
Поэтому код должен повторяться и создавать объект, который заполняет счетчик, но не работает. Если я анализирую только один объект и заполняю счетчик, он отлично работает и выглядит так же, но я действительно не могу понять, как в цикле через JSON получить все данные, которые мне нужны, каждый «id_distributore» и «NomeDistributore», любая идея?
Спасибо заранее!