这是将从OkHTTP接收的JSON响应。这只是响应的10部分中的一部分。
[{"id":418,"title":{"rendered":"testttt"},"content":{"rendered":"
\n\nThis is a random post trying to implement some feature soon and we
don\u2019t have any option rather than try in the production environment only.
Just because this is a stupid decision don\u2019t blame me for this,
please.\n\n<\/p>\n","protected":false}]
这是我要获取标题的代码,如下所示:
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("http://url.com/wp-json/wp/v2/posts")
.build();
Response response = client.newCall(request).execute();
String myResponse = response.body().string();
JSONObject json = new JSONObject(myResponse);
for(int i=0; i <=9 ; i++){
JSONArray jsonArray = json.getJSONArray("title");
String title = jsonArray.getString("rendered");
titles.add(title);
}
但是我得到这个error: incompatible types: String cannot be converted to int
。
我不知道我哪里错了。
答案 0 :(得分:3)
只需检查Json
输出。似乎 title
不是Array
,您正在将其声明为Array
:
JSONArray jsonArray = json.getJSONArray("title");
请尝试以下操作:
for(int i=1; i <= json.length(); i++){
String title = json.getJSONObject(i).getString("rendered");
titles.add(title);
}
但是,通过将相同的Json
输出转换为GSON POJO
,您将可以比旧方法更轻松,更快地获取数据。
答案 1 :(得分:-1)
titles
列表类型,如果int
是string
。
如果列表类型为字符串;
jsonArray.get(i).getString("rendered");
示例:
JSONArray array;
for(int n = 0; n < array.length(); n++)
{
JSONObject object = array.getJSONObject(n);
// do some stuff....
}