D
Didi95
Neues Mitglied
- 0
Hi,
ich entwickle gerade eine App für die Schule, wo er mir Vertretungsdaten aus einer SQL datenbank ausliest. Meine Verbindung zur Datenbank funktioniert anscheinend schon und er holt sich die Daten auch soweit ich dem Logtag trauen kann, allerdings habe ich Probleme bei der weiteren Verarbeitung der Daten. Er soll sie mir in eine Listview einfügen, allerdings kommt immer wieder dieser Fehler:
Error parsing data org.json.JSONException: Value n<!doctype of type java.lang.String cannot be converted to JSONArray
Ich habe jetzt schon ein bisschen gegoogelt und hab was gefunden das wenn da doctype steht der header der phpdatei gesetzt werden muss. hab das soweit jetzt auch alles gemacht allerdings erscheint der fehler immer wieder.
das er den string nicht in ein json array konvertieren kann, da bin ich völlig ratlos. könnt ihr mir da weiterhelfen? Stelle hier den code mit rein:
ich entwickle gerade eine App für die Schule, wo er mir Vertretungsdaten aus einer SQL datenbank ausliest. Meine Verbindung zur Datenbank funktioniert anscheinend schon und er holt sich die Daten auch soweit ich dem Logtag trauen kann, allerdings habe ich Probleme bei der weiteren Verarbeitung der Daten. Er soll sie mir in eine Listview einfügen, allerdings kommt immer wieder dieser Fehler:
Error parsing data org.json.JSONException: Value n<!doctype of type java.lang.String cannot be converted to JSONArray
Ich habe jetzt schon ein bisschen gegoogelt und hab was gefunden das wenn da doctype steht der header der phpdatei gesetzt werden muss. hab das soweit jetzt auch alles gemacht allerdings erscheint der fehler immer wieder.
das er den string nicht in ein json array konvertieren kann, da bin ich völlig ratlos. könnt ihr mir da weiterhelfen? Stelle hier den code mit rein:
PHP:
<?php
header('Content-type=application/json; charset=utf-8');
error_reporting(E_ALL);
ini_set('display_errors', 1);
$mysqlhost="localhost"; // MySQL-Host angeben
$mysqluser="stundenplan"; // MySQL-User angeben
$mysqlpwd="untis"; // Passwort angeben
$mysqldb="untis"; // Gewuenschte Datenbank angeben
$connection=mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die("Verbindungsversuch fehlgeschlagen");
mysql_select_db($mysqldb, $connection) or die("Konnte die Datenbank nicht waehlen.");
$sql=mysql_query("SELECT * FROM vertretungsplan");
while($row=mysql_fetch_assoc($sql))
$output[]=$row;
print(json_encode($output));
mysql_close();
?>
Code:
package com.example.e_plan;
import java.io.BufferedReader;
import java.io.IOException;
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.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.protocol.BasicHttpContext;
import org.apache.http.protocol.HttpContext;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.w3c.dom.Document;
import com.example.e_plan.R;
import android.app.Activity;
import android.app.ListActivity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.StrictMode;
import android.util.Log;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
public class Vertretungsplan extends Activity{
InputStream is;
ArrayList<String> results= new ArrayList<String>();
JSONObject json_data;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
// Activate StrictMode
super.onCreate(savedInstanceState);
setContentView(R.layout.vertretungsplan1);
new rsstask().execute();
}
private class rsstask extends AsyncTask{
ArrayAdapter<String>adaptereintrag = new ArrayAdapter<String>(Vertretungsplan.this, android.R.layout.simple_list_item_1, results);
protected Object doInBackground(Object... arg0) {
String result = "";
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
try{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://yourcloud.eichsfeld-gymnasium.de.de/app_neu/Verbindung.php");
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,"utf-8"),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 ");
}
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("vertretungsplan"));
}
} catch(JSONException e){
Log.e("log_tag", "Error parsing data "+e.toString());
}
return null;
}//schließt doInBackground
protected void onPostExecute(String result){
ListView lv1 = (ListView)findViewById(R.id.listView2);
lv1.setAdapter(adaptereintrag);
}
} //schließt AsyncTask
/**
* @param args
* @throws IOException
* @throws ClientProtocolException
*/
public static void main(String[] args) throws ClientProtocolException, IOException {
// TODO Auto-generated method stub
}//schließt main
}//schließt alles