我正在尝试从数据库中检索 json 记录。通过浏览器检索 GET 请求时,我的 json 响应具有此结构并返回适当的数据
[{"name":"OOGOGOGO","address":"OPOPOPOP","gender":"OPOPOPOP","email":"OPOPOPOP","phonenumber":"OPOPOPOP","nationality":"OPOOPOPO","fk":1}]
我正在异步任务 doinbackground 中调用端点 url,这是端点
url = new URL("http://10.0.2.2:88/example/web/app_dev.php/get/1");
上述端点返回405状态代码错误。在 try catch json 异常时,我收到此错误
error gotten org.json.JSONException: Value Connection of type java.lang.String cannot be converted
对该端点可能出现的问题感到困惑,因为它从 postman 返回了 200 ok json 响应。请帮忙
最佳答案
这是代码 fragment 。
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Fetch network data
new NetworkAsyncTask().execute("http://www.mocky.io/v2/591f32f4110000d10307b4c7");
}
private class NetworkAsyncTask extends AsyncTask<String, Void, String> {
protected String doInBackground(String... strings) {
try {
URL url = new URL(strings[0]);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.connect();
InputStream in = conn.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
StringBuilder stringBuilder = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
stringBuilder.append(line);
}
return stringBuilder.toString();
} catch (Exception e) {
return null;
}
}
protected void onPostExecute(String result) {
if (result != null) {
Log.d("TAG", "Success! Result: " + result);
processResult(result);
} else {
Log.d("TAG", "Failed, no data");
}
}
private void processResult(String result) {
try {
JSONArray jsonArray = new JSONArray(result);
JSONObject nameObject = jsonArray.getJSONObject(0);
String name = nameObject.optString("name");
Log.d("TAG", "name: " + name);
} catch (JSONException e) {
e.printStackTrace();
}
}
}
}
有关 Android 上的网络和 JSON 的更多信息,我建议您阅读本指南:
https://guides.codepath.com/android/Sending-and-Managing-Network-Requests https://guides.codepath.com/android/Converting-JSON-to-Models
关于java - 从数据库获取对象时,java.lang.String类型的值连接无法转换为JSONObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44075910/