S
Saleh
Neues Mitglied
- 0
Guten Tag,
bin kurz davor meiner ersten Erfolge in Sachen Android Programmierung zu machen. Leider bekomme ich beim ausführen meiner App den Fehler
Error parsing data org.json.JSONException: Value <?php of type java.lang.String cannot be converted to JSONArray
mein code sieht wie folgt aus :
Der code in meiner test.php datei :
aus Sicherheitsgründen habe ich die servernamen mit einem beispiel ersetzt.
Ich habe schon alles probiert was im internet drin stand leider ohne erfolge kann mir einer weiter helfen ?
Vielen Dank im Voraus!
Der ursprüngliche Beitrag von 16:17 Uhr wurde um 16:54 Uhr ergänzt:
Was ich noch vergessen habe mein dem Code result = sb.toString();
speichert genau das in den String "result" rein was auch in der .php Datei drin steht also den coder der php-Datei. Das sollte doch aber so nicht sein oder? Stimmt vlt was mit meinem Server nicht weil wenn ich die den URL der Datei im Browser ausführe speichert er nur die datei lokal ab und gibt nicht den JSON String zurück?!?!?
bin kurz davor meiner ersten Erfolge in Sachen Android Programmierung zu machen. Leider bekomme ich beim ausführen meiner App den Fehler
Error parsing data org.json.JSONException: Value <?php of type java.lang.String cannot be converted to JSONArray
mein code sieht wie folgt aus :
Code:
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.apache.http.message.BasicNameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.os.Bundle;
import android.app.ActionBar.LayoutParams;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout);
getData();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
InputStream is;
JSONObject json_data;
TableLayout table;
TextView columnOneText;
TextView columnTwoText;
String columnOneString;
String columnTwoString;
public void getData() {
String result = "";
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
try {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("[COLOR=Orange]http://hierstehtdannmeinservernamedrin/files/public-docs/PhP/test.php"[/COLOR]);
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();
result.replace("<?php", "");
}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);
columnOneString = json_data.get("Name").toString();
columnTwoString = json_data.get("Text").toString();
fillList();
}
}catch(JSONException e){
Log.e("log_tag", "Error parsing data "+e.toString());
}
}
public void fillList() {
table = (TableLayout) findViewById(R.id.TableLayout01);
TableRow row = new TableRow(this);
columnOneText = new TextView(this);
columnTwoText = new TextView(this);
columnOneText.setText(columnOneString);
columnTwoText.setText(columnTwoString);
row.addView(columnOneText);
row.addView(columnTwoText);
table.addView(row,new TableLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
}
}
PHP:
<?php
mysql_connect("meinservername","Admin","testtest1");
mysql_select_db("dbBeContinued");
$q=mysql_query("SELECT Name, Text FROM Stories");
while($e=mysql_fetch_assoc($q))
$output[]=$e;
print(json_encode($output));
mysql_close();
?>
Ich habe schon alles probiert was im internet drin stand leider ohne erfolge kann mir einer weiter helfen ?
Vielen Dank im Voraus!
Der ursprüngliche Beitrag von 16:17 Uhr wurde um 16:54 Uhr ergänzt:
Saleh schrieb:Guten Tag,
bin kurz davor meiner ersten Erfolge in Sachen Android Programmierung zu machen. Leider bekomme ich beim ausführen meiner App den Fehler
Error parsing data org.json.JSONException: Value <?php of type java.lang.String cannot be converted to JSONArray
mein code sieht wie folgt aus :
Der code in meiner test.php datei :Code: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.apache.http.message.BasicNameValuePair; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import android.os.Bundle; import android.app.ActionBar.LayoutParams; import android.app.Activity; import android.util.Log; import android.view.Menu; import android.widget.TableLayout; import android.widget.TableRow; import android.widget.TextView; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.layout); getData(); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } InputStream is; JSONObject json_data; TableLayout table; TextView columnOneText; TextView columnTwoText; String columnOneString; String columnTwoString; public void getData() { String result = ""; ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); try { HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost("[COLOR=Orange]http://hierstehtdannmeinservernamedrin/files/public-docs/PhP/test.php"[/COLOR]); 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(); result.replace("<?php", ""); }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); columnOneString = json_data.get("Name").toString(); columnTwoString = json_data.get("Text").toString(); fillList(); } }catch(JSONException e){ Log.e("log_tag", "Error parsing data "+e.toString()); } } public void fillList() { table = (TableLayout) findViewById(R.id.TableLayout01); TableRow row = new TableRow(this); columnOneText = new TextView(this); columnTwoText = new TextView(this); columnOneText.setText(columnOneString); columnTwoText.setText(columnTwoString); row.addView(columnOneText); row.addView(columnTwoText); table.addView(row,new TableLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); } }
aus Sicherheitsgründen habe ich die servernamen mit einem beispiel ersetzt.PHP:<?php mysql_connect("meinservername","Admin","testtest1"); mysql_select_db("dbBeContinued"); $q=mysql_query("SELECT Name, Text FROM Stories"); while($e=mysql_fetch_assoc($q)) $output[]=$e; print(json_encode($output)); mysql_close(); ?>
Ich habe schon alles probiert was im internet drin stand leider ohne erfolge kann mir einer weiter helfen ?
Vielen Dank im Voraus!
Was ich noch vergessen habe mein dem Code result = sb.toString();
speichert genau das in den String "result" rein was auch in der .php Datei drin steht also den coder der php-Datei. Das sollte doch aber so nicht sein oder? Stimmt vlt was mit meinem Server nicht weil wenn ich die den URL der Datei im Browser ausführe speichert er nur die datei lokal ab und gibt nicht den JSON String zurück?!?!?