无法在Android上解析JSON

时间:2016-03-31 18:39:19

标签: android json okhttp3

我在Android中遇到了JSON和okhttp这个问题。 任何人都能指出我正确的方向吗?我很新,所以任何帮助都可以。

enter image description here

这是我的进口商品:

import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.EditText;
import android.widget.Button;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.json.JSONException;
import org.json.*;

import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
import okhttp3.MediaType;

1 个答案:

答案 0 :(得分:1)

您错过了JSON引用的声明:

public static final MediaType JSON
    = MediaType.parse("application/json; charset=utf-8");

来自the documentation中的示例代码:

public class PostExample {
  public static final MediaType JSON
      = MediaType.parse("application/json; charset=utf-8");

  OkHttpClient client = new OkHttpClient();

  String post(String url, String json) throws IOException {
    RequestBody body = RequestBody.create(JSON, json);
    Request request = new Request.Builder()
        .url(url)
        .post(body)
        .build();
    Response response = client.newCall(request).execute();
    return response.body().string();
  }
}

请注意,查看您正在使用的代码的文档总是一个好主意,在这种情况下,您可以调用RequestBody.create()来查看the documentation for this method,在那里您可以看到第一个参数是MediaType引用:

  

public static RequestBody create(MediaType contentType,                    字符串内容)

     

返回传输内容的新请求正文。如果contentType为非null且缺少字符集,   这将使用UTF-8。