我正在尝试将 Android 应用程序与本地 MySQL 数据库连接,但遇到问题
解析 JSON 数组。 (我在这里阅读了所有类似的问题,但没有任何作用。)
错误消息:
Error parsing data org.json.JSONException: A JSONArray text must start with '[' at character 1 of [{"UserName":"Admin","Password":"111","Role":"0"},{"UserName":"Employee","Password":"123","Role":"1"}]
这是代码:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
new Connect().execute();
}
private class Connect extends AsyncTask<Void, Void, String> {
private String result = "";
private InputStream is = null;
private ProgressBar progress_Bar;
protected void onPreExecute() {
progress_Bar = ((ProgressBar) findViewById(R.id.progress));
progress_Bar.setVisibility(0);
}
@Override
protected String doInBackground(Void... params) {
try {
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://10.0.2.2/users.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", "Error in http connection " + e.toString());
}
// convert response to string
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);
}
is.close();
result = sb.toString();
result.trim();
} catch (Exception e) {
Log.e("log_tag", "Error converting result " + e.toString());
}
return result;
}
protected void onPostExecute(String result) {
String name;
try {
Log.d("RESULT", result);
JSONArray jArray = new JSONArray(result);
JSONObject json_data = null;
for (int i = 0; i < jArray.length(); i++) {
json_data = jArray.getJSONObject(i);
Toast.makeText(getApplicationContext(), "", Toast.LENGTH_LONG).show();
}
} catch (JSONException e) {
Log.e("log_tag", "Error parsing data " + e.toString());
}
}
}
这是 PHP 代码:
<?php
$con1=mysql_connect("localhost", "root", "");
mysql_select_db("sehaty");
mysql_query("SET NAMES utf8");
$sql = mysql_query("SELECT * FROM users");
while($row = mysql_fetch_assoc($sql)) {
$output[]=$row;
}
$data = json_encode($output);
print($data);
mysql_close();
?>