我正在尝试使用GSON库解析Android应用程序中的JSON。我已经正确解析了一个JSON数组,但现在我需要解析另一个具有以下结构的JSON:
{
"articles": [
{
"article": {
"articleId": 1,
"articleName": "Bocadillo de calamares",
"merchantId": 2,
"price": 3.5
},
"computable": true,
"orderArticleId": 3157,
"orderId": 203,
"price": 3.5,
"requestedDate": "2012-11-19 13:15:20",
"shared": true,
"status": "AS01_INITIAL"
},
{
"article": {
"articleId": 3,
"articleName": "Desayuno",
"merchantId": 2,
"price": 2.2
},
"computable": true,
"orderArticleId": 3158,
"orderId": 203,
"price": 0,
"requestedDate": "2012-11-19 13:17:30",
"shared": true,
"status": "AS01_INITIAL"
},
{
"article": {
"articleId": 2,
"articleName": "Café",
"merchantId": 2,
"price": 1.1
},
"computable": true,
"orderArticleId": 3156,
"orderId": 203,
"price": 1.1,
"requestedDate": "2012-11-19 13:15:20",
"shared": true,
"status": "AS01_INITIAL"
},
{
"article": {
"articleId": 1,
"articleName": "Bocadillo de calamares",
"merchantId": 2,
"price": 3.5
},
"computable": true,
"orderArticleId": 3155,
"orderId": 203,
"price": 3.5,
"requestedDate": "2012-11-19 12:40:17",
"shared": true,
"status": "AS01_INITIAL"
}
],
"comment": null,
"creationDate": "2012-11-19 12:06:41",
"customer": {
"creationDate": 1353321506000,
"customerId": 152,
"devices": [
{
"customerId": 152,
"deviceId": "2000",
"phone": null
}
],
"image": false,
"mail": null,
"name": null,
"password": null
},
"finishDate": null,
"group": 0,
"groupOrders": [],
"location": {
"location": "Table 1",
"locationId": 1,
"shopId": 2
},
"orderId": 203,
"parentOrderId": 192,
"score": null,
"shopId": 2,
"status": "OS01_INITIAL",
"ticketUrl": null,
"tip": null,
"total": 0,
"totalArticles": 0,
"type": "BILL"
}
I have a Order.class like this:
public class Order {
private final String orderId;
(....)
private final ArrayList<Articles> articles;
private final String group;
public Order() {
orderId = "";
(....)
articles = new ArrayList<Articles>();
group = "";
}
public String getOrderId() {
return orderId;
}
(... All getters for each element)
public ArrayList<Articles> getArticles() {
return articles;
}
}
和一个Articles.class
public class Articles {
private final String orderArticleId;
(...)
private final ArrayList<Article> article;
public Articles() {
orderArticleId = "";
(....)
article = new ArrayList<Article>();
};
public String getPrice() {
return price;
}
(....All getters for each element)
public ArrayList<Article> getArticle() {
return article;
}
我会尝试在我的主Activity中使用以下代码获取所有信息:
final Gson gson = new Gson();
Order o = gson.fromJson(jsonData, Order.class);
System.out.println(" - " + o.getOrderId() );
这段代码运行正常,但是如果我想获取文章信息,这些值为空,我不知道怎样获取。
我尝试了以下代码:
Type collectionType = new TypeToken<List<Merchants>>() {
}.getType();
data = gson.fromJson(response, collectionType);
我尝试使用ArticlesWrapper,但是我不知道如何精确地做到这一点。 但我认为我忘记了某些东西......而且我也不知道是什么。 在应用的另一个部分,我正确反序列化JSON,因为它是一个数组,但在这种情况下,我不知道如何正确获取所有数据。
如果您需要更多信息,我可以提供给您! 谢谢!