您可以使用以下代码示例来解码来自PHP MySql数据库的JSON响应,并排除特殊字符。
import android.os.AsyncTask;
import android.util.Log;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
public class DecodeJsonResponseTask extends AsyncTask {
private static final String TAG = "DecodeJsonResponseTask";
@Override
protected JSONObject doInBackground(String... urls) {
HttpURLConnection connection = null;
BufferedReader reader = null;
JSONObject json = null;
try {
// 创建URL对象并设置请求参数
String urlStr = urls[0];
URL url = new URL(urlStr);
String params = "param1=" + URLEncoder.encode("value1", "UTF-8") +
"¶m2=" + URLEncoder.encode("value2", "UTF-8");
// 打开连接并发送请求
connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setDoOutput(true);
connection.getOutputStream().write(params.getBytes("UTF-8"));
// 获取响应数据
InputStream inputStream = connection.getInputStream();
reader = new BufferedReader(new InputStreamReader(inputStream));
StringBuilder response = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
response.append(line);
}
// 解析JSON响应
json = new JSONObject(response.toString());
} catch (Exception e) {
Log.e(TAG, "Error: " + e.getMessage());
} finally {
if (connection != null) {
connection.disconnect();
}
if (reader != null) {
try {
reader.close();
} catch (Exception e) {
Log.e(TAG, "Error: " + e.getMessage());
}
}
}
return json;
}
@Override
protected void onPostExecute(JSONObject json) {
if (json != null) {
try {
// 在这里处理解码后的JSON响应
String value1 = json.getString("value1");
int value2 = json.getInt("value2");
// ...
} catch (JSONException e) {
Log.e(TAG, "Error: " + e.getMessage());
}
}
}
}
您可以使用以下代码来执行上述异步任务:
DecodeJsonResponseTask task = new DecodeJsonResponseTask();
String url = "http://your-php-script-url";
task.execute(url);
在上述代码中,您需要将http://your-php-script-url
替换为您的PHP脚本的URL,该脚本从MySQL数据库获取数据并以JSON格式进行响应。
请确保在执行异步任务之前,已经添加了适当的网络权限到您的AndroidManifest.xml文件中:
这样,您就可以通过解码JSON响应来获取来自PHP MySql数据库的数据,并且排除了特殊字符。
上一篇:Android应用程序间歇性崩溃java.lang.UnsatisfiedLinkError:dlopen失败
下一篇:Android应用程序具有权限“view network connections”,但未在AndroidManifest.xml中列出。