Sono nuovo di JSON e provare questo tutorial: http://p-xr.com/android-tutorial-how-to-parse-read-json-data-into-a-android-listview/#commentsOttieni JSONArray senza nome di matrice?
Sono nuovo di JSON, linguaggi C, Java e anche Android, ma sto imparando. Il tutorial usa quello che sto chiamando un array con nome, ma tutto il JSON che userò nel mio progetto Android userà semplici righe di tabella senza array con nome. Di seguito sono riportati alcuni esempi del JSON che sto utilizzando e del terremoto json del tutorial.
I itera del tutorial attraverso l'array terremoto e si trasforma in un elenco HashMap Java utilizzando il seguente codice:
JSONArray earthquakes = json.getJSONArray("earthquakes");
for(int i=0;i<earthquakes.length();i++){
HashMap<String, String> map = new HashMap<String, String>();
JSONObject e = earthquakes.getJSONObject(i);
map.put("id", String.valueOf(i));
map.put("name", "Earthquake name:" + e.getString("eqid"));
map.put("magnitude", "Magnitude: " + e.getString("magnitude"));
mylist.add(map);
}
La mia domanda è, come posso utilizzare json.getJSONArray("")
se il mio JSON è proprio semplice come di seguito? Posso convertire il resto del codice, ho solo bisogno di sapere come caricare quel JSON usando il getJSONArray("strJsonArrayName")
se non ho uno strJsonArrayName
.
mio JSON (Array senza nome)
[
{
"cnt":1,
"name":"American",
"pk":7
},
{
"cnt":2,
"name":"Celebrities",
"pk":3
},
{
"cnt":1,
"name":"Female",
"pk":2
},
{
"cnt":1,
"name":"Language",
"pk":8
},
{
"cnt":1,
"name":"Male",
"pk":1
},
{
"cnt":1,
"name":"Region",
"pk":9
}
]
JSON di Tutorial (nome Array)
{
"earthquakes":[
{
"eqid":"c0001xgp",
"magnitude":8.8,
"lng":142.369,
"src":"us",
"datetime":"2011-03-11 04:46:23",
"depth":24.4,
"lat":38.322
},
{
"eqid":"c000905e",
"magnitude":8.6,
"lng":93.0632,
"src":"us",
"datetime":"2012-04-11 06:38:37",
"depth":22.9,
"lat":2.311
},
{
"eqid":"2007hear",
"magnitude":8.4,
"lng":101.3815,
"src":"us",
"datetime":"2007-09-12 09:10:26",
"depth":30,
"lat":-4.5172
},
{
"eqid":"c00090da",
"magnitude":8.2,
"lng":92.4522,
"src":"us",
"datetime":"2012-04-11 08:43:09",
"depth":16.4,
"lat":0.7731
},
{
"eqid":"2007aqbk",
"magnitude":8,
"lng":156.9567,
"src":"us",
"datetime":"2007-04-01 18:39:56",
"depth":10,
"lat":-8.4528
},
{
"eqid":"2007hec6",
"magnitude":7.8,
"lng":100.9638,
"src":"us",
"datetime":"2007-09-12 21:49:01",
"depth":10,
"lat":-2.5265
},
{
"eqid":"a00043nx",
"magnitude":7.7,
"lng":100.1139,
"src":"us",
"datetime":"2010-10-25 12:42:22",
"depth":20.6,
"lat":-3.4841
},
{
"eqid":"2010utc5",
"magnitude":7.7,
"lng":97.1315,
"src":"us",
"datetime":"2010-04-06 20:15:02",
"depth":31,
"lat":2.3602
},
{
"eqid":"2009mebz",
"magnitude":7.6,
"lng":99.9606,
"src":"us",
"datetime":"2009-09-30 08:16:09",
"depth":80,
"lat":-0.7889
},
{
"eqid":"2009kdb2",
"magnitude":7.6,
"lng":92.9226,
"src":"us",
"datetime":"2009-08-10 17:55:39",
"depth":33.1,
"lat":14.0129
}
]
}
Nel tutorial, sulla base delle risposte da @ MДΓΓ БДLL e @Cody Caughlan, sono stato in grado per riformattare JSONFunctions.getJSONFromURL in un JSONArray anziché in un JSONObject. Ecco il mio codice di lavoro modificato, grazie!
public class JSONfunctions {
public static JSONArray getJSONfromURL(String url){
InputStream is = null;
String result = "";
JSONArray jArray = null;
HttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet(url);
HttpResponse response = httpclient.execute(httpget);
HttpEntity entity = response.getEntity();
is = entity.getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
result=sb.toString();
jArray = new JSONArray(result);
return jArray;
}
}
OK, ho capito. Ho convertito il metodo getJSONObject in un metodo getJSONArray in questo modo e ho anche cambiato il suo httpPost in un httpGet e ora funziona! Grazie! – Ricky
semplice e utile ... grazie !!! – dd619
Può dirmi in che modo viene mostrato tale risultato? JSONArray json = new JSONArray (result); – Sharath