- Forum-Beiträge: 3
06.10.2014, 21:43:11 via Website
06.10.2014 21:43:11 via Website
Hallo,
ich habe nach dem Beispiel "MySql Datenbank in eine ListView auslesen!" aus diesem Forum eine Test-App geschrieben.
Dazu mein MainActivity.java:
package de.rammi.phpapp;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.ListActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.ArrayAdapter;
public class MainActivity extends ListActivity {
InputStream is;
ArrayList<String> results = new ArrayList<String>();
JSONObject json_data;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getData(null);
}
private void getData(String result) {
result = "";
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
try{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("...");
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
}
catch(Exception e){
Log.e("log_tag", "Fehler bei der http Verbindung "+e.toString());
}
try{
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();
}
catch(Exception e){
Log.e("log_tag", "Error converting result "+e.toString());
}
try{
JSONArray jArray = new JSONArray(result);
for( int i = 0; i < jArray.length(); i++ ){
json_data = jArray.getJSONObject(i);
results.add((String) json_data.get("id") + json_data.get("name"));
}
fillList();
}
catch(JSONException e){
Log.e("log_tag", "Error parsing data hier " + e.toString());
}
}
private void fillList() {
this.setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, results));
}
}
Der abzurufende return der php-Datei:
print(json_encode(array("Hallo Android", "von meiner Testseite")));
Das erzeugt einen Fehler:
10-06 21:16:34.329: E/log_tag(29939): Error parsing data hier org.json.JSONException: Value Hallo Android at 0 of type java.lang.String cannot be converted to JSONObject
Es geht also um diese Zeilen:
try{
JSONArray jArray = new JSONArray(result);
for( int i = 0; i < jArray.length(); i++ ){
json_data = jArray.getJSONObject(i);
results.add((String) json_data.get("id") + json_data.get("name"));
}
fillList();
}
catch(JSONException e){
Log.e("log_tag", "Error parsing data hier " + e.toString());
}
Ich bin absolut Neuling auf dem Gebiet JAVA, meine Erfahrung beschränken sich auf PHP, SQL etc.
Was also muss ich hier ändern um den enstprechenden Output zu bekommen?
Gruss Rammi
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.