So verstehe ich, dass Sie JSON-Zeichenfolgen in Zeichenfolgen konvertieren und JSON-Objekte im Allgemeinen durch das org.json-Bündel in Android behandeln können, aber hier ist meine aktuelle Situation:
Ich brauche eine JSON-Zeichenfolge von einer bestimmten URL zu nehmen (ich bin bereits in der Lage, dies erfolgreich zu tun) und machen es in ein Array. Nun, eigentlich zwei Arrays. Das Framework, das ich verwende, läuft auf Python und gibt ein dict zurück, das Listen (Arrays in Python) enthält. Allerdings wird es als JSON-Objekt angezeigt. Hier ist ein Beispiel dafür, was ich von der URL in meinem Java-Code erhalten würde:
{"keywords": ["middle east", "syria"], "link": [["middle east", "http://www.google.com/#q=middle east"], ["syria", "http://www.google.com/#q=syria"]]}
Wie Sie sehen, handelt es sich um ein Diktat aus zwei Indizes. Der erste ist "keywords", der eine Liste enthält, und der zweite ist "link", der eine Liste von Listen enthält. Die beiden Listen (die erste und die zweite multidimensionale Liste) möchte ich in Java bearbeiten können. Ich bin mir bewusst, dass Sie JSONArray verwenden können, aber das Problem ist, dass die Arrays in einem Python-Dict gespeichert sind, und meine Android-Anwendung nicht richtig ein JSONArray machen. Habt ihr Jungs irgendwelche Ideen, wie ich dies behandeln kann? Ich bin ziemlich verloren. Hier ist mein Code für den Erhalt der tatsächlichen JSON-Zeichenfolge (die URL im Code ist nicht für jedermann zugänglich, es wird von Paste auf meinem Rechner serviert):
static public void refreshFeed(){
try{
String url = "http://192.17.178.116:8080/getkw?nextline="+line;
line++;
HttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet(url);
HttpResponse response;
response = httpclient.execute(httpget);
HttpEntity entity = response.getEntity();
InputStream in = entity.getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
StringBuilder sb = new StringBuilder();
String input = null;
try {
while ((input = reader.readLine()) != null) {
sb.append(input + "\n");
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
String enter = sb.toString();
feedEntry add = new feedEntry(enter);
addNewEntry(add);
in.close();
} catch(MalformedURLException e){
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
Bitte beachten Sie auch, dass es sich um sin der JSONString wird in ein JSONArray umgewandelt. Es übersetzt das JSON-Objekt einfach in einen regulären String, der zu einem "feedEntry"-Objekt hinzugefügt wird.