检索JSON数据时无法将字符串转换为int错误

时间:2018-09-21 15:34:40

标签: java android json okhttp

这是将从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

我不知道我哪里错了。

2 个答案:

答案 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,您将可以比旧方法更轻松,更快地获取数据。

使用:http://www.jsonschema2pojo.org/

然后:Retrieve data using Gson

答案 1 :(得分:-1)

titles列表类型,如果intstring

如果列表类型为字符串;

jsonArray.get(i).getString("rendered");

示例:

JSONArray array;
for(int n = 0; n < array.length(); n++)
{
    JSONObject object = array.getJSONObject(n);
    // do some stuff....
}