解決: それは私のミスでした。
正しい方法はレスポンス.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);