OkHttp はどうやって Json 文字列を取得するのでしょうか? 質問する

OkHttp はどうやって Json 文字列を取得するのでしょうか? 質問する

解決: それは私のミスでした。

正しい方法はレスポンス.body().文字列()以外レスポンスボディtoString()

私はJettyサーブレットを使用しています。URLは ですhttp://172.16.10.126:8789/test/path/jsonpage。このURLをリクエストするたびに返されます。

{"employees":[
    {"firstName":"John", "lastName":"Doe"}, 
    {"firstName":"Anna", "lastName":"Smith"},
    {"firstName":"Peter", "lastName":"Jones"}
]}

ブラウザに URL を入力すると表示されますが、残念ながら、 でリクエストすると、JSON 文字列以外のメモリ アドレスのようなものが表示されますOkhttp

TestActivity﹕ com.squareup.okhttp.internal.http.RealResponseBody@537a7f84

私が使用しているOkhttpコード:

OkHttpClient client = new OkHttpClient();

String run(String url) throws IOException {
  Request request = new Request.Builder()
      .url(url)
      .build();

  Response response = client.newCall(request).execute();
  return response.body().string();
}

誰か助けてくれませんか?

ベストアンサー1

try {
    OkHttpClient client = new OkHttpClient();
    Request request = new Request.Builder()
        .url(urls[0])
        .build();
    Response responses = null;

    try {
        responses = client.newCall(request).execute();
    } catch (IOException e) {
        e.printStackTrace();
    }
    String jsonData = responses.body().string();
    JSONObject Jobject = new JSONObject(jsonData);
    JSONArray Jarray = Jobject.getJSONArray("employees");

    for (int i = 0; i < Jarray.length(); i++) {
        JSONObject object     = Jarray.getJSONObject(i);
    }
}

列に追加する例:

JCol employees  = new employees();
colums.Setid(object.getInt("firstName"));
columnlist.add(lastName);           

おすすめ記事