【发布时间】:2018-12-16 11:02:27
【问题描述】:
我正在创建一个 Android 应用,用于控制使用 RPI 的调酒师的配置
我想在列表视图中显示所有当前的饮料及其成分。
这是我从服务器得到的 Json 响应:
[
{
"name":"Rum & Coke",
"ingredients":{
"rum":50,
"coke":150
}
},
{
"name":"Gin & Tonic",
"ingredients":{
"tonic":10,
"gin":10
}
},
{
"name":"Long Island",
"ingredients":{
"tequila":15,
"oj":30,
"rum":15,
"vodka":15,
"coke":100,
"gin":15
}
},
{
"name":"Screwdriver",
"ingredients":{
"vodka":50,
"oj":150
}
},
{
"name":"Margarita",
"ingredients":{
"mmix":150,
"tequila":50
}
},
{
"name":"Gin & Juice",
"ingredients":{
"oj":150,
"gin":50
}
},
{
"name":"Tequila Sunrise",
"ingredients":{
"tequila":50,
"oj":150
}
}
]
这里是 Drink.class
public class Drink {
@SerializedName("name")
private String name;
@SerializedName("ingredients")
private Map<String, Integer> ingredients;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Map<String, Integer> getIngredients() {
return ingredients;
}
public void setIngredients(Map<String, Integer> ingredients) {
this.ingredients = ingredients;
}
}
现在我可以在列表视图中显示饮料名称,并且只有地图的 第二个值 带有这个 for 语句
Drink d = drinksArrayList.get(position);
System.out.println(d.getIngredients().size());
for (Map.Entry<String, Integer> ingredient : d.getIngredients().entrySet()) {
holder.ingredient0.setText(ingredient.getKey());
holder.ingredient1.setText(Integer.toString(ingredient.getValue()));
}
如果是朗姆酒和可乐,这个 for 语句将把可乐 150 打印到屏幕上。
有人知道我如何正确序列化这个 Json 并将其打印到列表视图吗?
【问题讨论】:
标签: java android json dictionary