我通常使用volley从服务器发送和获取数据,但在我的一次活动中,我使用okHttpClient从服务器发送和接收数据。我可以发送和接收来自服务器的数据,但我不能按字段分开。
下面是我的代码
@Override
public void onResponse(Call call, final okhttp3.Response response) throws IOException {
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
try {
JSONObject jsonObject = new JSONObject(response.body().string());
Toast.makeText(getActivity(), "mail sent successfully.", Toast.LENGTH_SHORT).show();
description.setText(" ");
txt_picture_preview.setImageResource(android.R.color.transparent);
selecttypedec.setSelection(0);
progressDialog.dismiss();
Log.d("TAG", "response of image: " + response.body().string());
} catch (IOException e) {
e.printStackTrace();
}
}
但是它抛出了错误,比如"org.json.JSON Exception : End of input at character 0 at“
请帮助我如何才能获得数据领域的智慧。
这是我的回应。请帮帮忙。
{"user_detail":{"id":110,"user_id":53,"address_type":"H","status":"A","house_number":"2","street_number":"zuiderdijk","city":"wetteren",“country”:“比利时”,"postal_code":"9230",“纬度”:“”,“经度”:“”,"created_at":"2017-11-13 11:15:53","updated_at":"2017-11-29 10:29:35","admin_id":2,"admin_status":"A","user":{"id":53,"first_name":"chitra","last_name":"solanki","email":"schitralekha@deaninfotech.com",“手机”:null,"sms_alternate_number":"1234567890",“2017”:null,"language":"fr","otp":null,"status":"A","gcm_id":null,"imei_number":"356554060835242","sms_status":"n","api_token":"$2y$10$QKOHH7GYJc/eVT4BGqq5U.0hEp8iVZh0Ybep9yySWjlM6SYRvG0gC","created_at":"2017-11-13 11:12:06",“updated_at”:“postal_code-11-29 10:29:35"}},“success”:“当前活动位置更新成功!”}
发布于 2017-11-29 19:03:16
尝尝这个
try {
JSONObject jsonObject= new JSONObject(response.body().string());
JSONObject user_detail= jsonObject.getJSONObject("user_detail");
Log.e("id",user_detail.getString("id"));
Log.e("user_id",user_detail.getString("user_id"));
Log.e("address_type",user_detail.getString("address_type"));
Log.e("status",user_detail.getString("status"));
Log.e("house_number",user_detail.getString("house_number"));
Log.e("street_number",user_detail.getString("street_number"));
Log.e("city",user_detail.getString("city"));
Log.e("country",user_detail.getString("country"));
Log.e("postal_code",user_detail.getString("postal_code"));
Log.e("latitude",user_detail.getString("latitude"));
Log.e("longitude",user_detail.getString("longitude"));
Log.e("created_at",user_detail.getString("created_at"));
Log.e("updated_at",user_detail.getString("updated_at"));
Log.e("admin_id",user_detail.getString("admin_id"));
Log.e("admin_status",user_detail.getString("admin_status"));
JSONObject user= user_detail.getJSONObject("user");
Log.e("id",user.getString("id"));
Log.e("first_name",user.getString("first_name"));
Log.e("last_name",user.getString("last_name"));
Log.e("email",user.getString("email"));
Log.e("mobile",user.getString("mobile"));
Log.e("sms_alternate_number",user.getString("sms_alternate_number"));
Log.e("postal_code",user.getString("postal_code"));
Log.e("language",user.getString("language"));
Log.e("otp",user.getString("otp"));
Log.e("status",user.getString("status"));
Log.e("gcm_id",user.getString("gcm_id"));
Log.e("imei_number",user.getString("imei_number"));
Log.e("sms_status",user.getString("sms_status"));
Log.e("api_token",user.getString("api_token"));
Log.e("created_at",user.getString("created_at"));
Log.e("updated_at",user.getString("updated_at"));
} catch (JSONException e) {
e.printStackTrace();
}
发布于 2017-11-29 19:04:28
现在你必须创建一个模型类(参见references here)。
现在,在类中声明所有以Json形式出现的字段作为响应。包括: id、user_id、status、address_type等。
现在,您可以通过以下方式访问该Json:
JSONObject userdetailObject = jsonObject.getJsonObject("user_detail");
ModelClass model = new ModelClass();
model.setId(userdetailObject.getString("I'd");
Model.serUserId(userdetailObject.getString("user_id");
通过这种方式,您可以使用"model object“访问变量中的整个实体,就像我们在Volley POJO类中所做的那样。
https://stackoverflow.com/questions/47550947
复制相似问题