我有这个 JSON:
{
"meta": {
"status": 200,
"msg": "OK"
},
"response": {
"blog": {
"title": "Poema do Dia",
"name": "poemadodia",
"posts": 381,
"url": "http://poemadodia.tumblr.com/",
"updated": 1380565297,
"description": "Um pouco do que eu penso e sinto em forma de rimas e prosas.",
"ask": true,
"ask_anon": true,
"is_nsfw": false,
"share_likes": false
},
"posts": [
{
"blog_name": "poemadodia",
"id": 62732663432,
"post_url": "http://poemadodia.tumblr.com/post/62732663432/maluquinha",
"slug": "maluquinha",
"type": "text",
"date": "2013-09-30 18:21:37 GMT",
"timestamp": 1380565297,
"state": "published",
"format": "html",
"reblog_key": "gdXogVQ1",
"tags": [
"amor",
"soneto"
],
"short_url": "http://tmblr.co/ZnrkhxwRA7g8",
"highlighted": [],
"note_count": 1,
"title": "Maluquinha",
"body": "<p>Ela é doida, demais<br/>Acorda daquele jeito<br/>Mas ela me satisfaz<br/>Dorme sobre meu peito</p>\n<p>Um amor que não esperei<br/>Que não foi de propósito<br/>Se tornou o que sonhei<br/>Mesmo sendo meu opósito</p>\n<p>Hoje a amo simplesmente<br/>E não me sinto tão carente<br/>Ela é a minha medida</p>\n<p>Começou inconsciente<br/>Um amor tão displicente<br/>Mas o amor da minha vida</p>"
}
],
"total_posts": 375
}
}
而这些类来抽象这些数据:
PoemaDoDia.java:
package br.com.wgbn.vo;
import io.leocad.dumbledroid.data.AbstractModel;
import io.leocad.dumbledroid.data.DataType;
import java.util.List;
import java.util.Vector;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import android.content.Context;
public class PoemaDoDia extends AbstractModel {
public List<Meta> meta;
public List<Response> response;
public PoemaDoDia() {
super("http://api.tumblr.com/v2/blog/poemadodia.tumblr.com/posts/text");
}
/*
* api_key=xxx
* limit=1
* offset=374
* */
public void load(Context ctx, String offset) throws Exception {
List<NameValuePair> params = new Vector<NameValuePair>();
params.add(new BasicNameValuePair("api_key", "xxx"));
params.add(new BasicNameValuePair("limit", "1"));
if (Integer.parseInt(offset) > 0){
params.add(new BasicNameValuePair("offset", offset));
}
super.load(ctx, params);
}
@Override
protected DataType getDataType() {
return DataType.JSON;
}
}
元.java:
package br.com.wgbn.vo;
import java.io.Serializable;
import java.util.List;
public class Meta implements Serializable {
public int status;
public String msg;
}
响应.java:
package br.com.wgbn.vo;
import java.io.Serializable;
import java.util.List;
public class Response implements Serializable {
public List<Blog> blog;
public List<Posts> posts;
public int total_posts;
}
博客.java:
package br.com.wgbn.vo;
import java.io.Serializable;
public class Blog implements Serializable {
public String title;
public String name;
public int posts;
public String url;
public String updated;
public String description;
public Boolean ask;
public Boolean ask_anon;
public Boolean is_nsfw;
public Boolean share_likes;
}
帖子.java:
package br.com.wgbn.vo;
import java.io.Serializable;
import java.util.List;
public class Posts implements Serializable {
public String blog_name;
public String id;
public String post_url;
public String slug;
public String type;
public String date;
public String timestamp;
public String state;
public String format;
public String reblog_key;
public List<String> tags;
public String short_url;
public List<String> highlighted;
public int note_count;
public String title;
public String body;
}
实现了 Dumbledroid 以使工作更实用,但我无法访问返回的节点。 https://github.com/leocadiotine/Dumbledroid
在我看来,错误是这样的:
org.json.JSONException: Value {"posts":[{"tags":["amor","soneto"],"body":"<p>Ela é doida, demais<br\/>Acorda daquele jeito<br\/>Mas ela me satisfaz<br\/>Dorme sobre meu peito<\/p>\n<p>Um amor que não esperei<br\/>Que não foi de propósito<br\/>Se tornou o que sonhei<br\/>Mesmo sendo meu opósito<\/p>\n<p>Hoje a amo simplesmente<br\/>E não me sinto tão carente<br\/>Ela é a minha medida<\/p>\n<p>Começou inconsciente<br\/>Um amor tão displicente<br\/>Mas o amor da minha vida<\/p>","blog_name":"poemadodia","post_url":"http:\/\/poemadodia.tumblr.com\/post\/62732663432\/maluquinha","reblog_key":"gdXogVQ1","state":"published","highlighted":[],"format":"html","date":"2013-09-30 18:21:37 GMT","type":"text","timestamp":1380565297,"id":62732663432,"title":"Maluquinha","short_url":"http:\/\/tmblr.co\/ZnrkhxwRA7g8","slug":"maluquinha","note_count":1}],"blog":{"share_likes":false,"title":"Poema do Dia","is_nsfw":false,"updated":1380565297,"description":"Um pouco do que eu penso e sinto em forma de rimas e prosas.","name":"poemadodia","posts":381,"ask":true,"ask_anon":true,"url":"http:\/\/poemadodia.tumblr.com\/"},"total_posts":375} at response of type org.json.JSONObject cannot be converted to JSONArray
我一直在研究,错误一定是因为收到的 JSON 包含一个对象而不是一个数组,但是由于 JSON 是由 Tumblr API 生成的,我无法控制它,也不要出去解决我的问题。
有什么建议么?