我有像这样的json模式
objects: [
-{
category: {
id: 4,
image: "category image url",
title: "LIGHT"
},
create_time: "2014-03-20T17:57:23",
file_url: "file url",
id: 26,
title: "Note",
user: {
avatar: "thumb url",
id: 12,
name: "user name"
}
}
-{
category: {
id: 1,
image: "category image url",
title: "HEAVY"
},
create_time: "2014-03-20T17:57:23",
file_url: "file url",
id: 25,
title: "Photo",
user: {
avatar: "thumb url",
id: 2,
name: "user name"
}
}
.
.
.
]
当我解析这个块时,一切都没问题,直到我想将解析后的节点放到Hashmap中。 用于解析我将节点和对象定义为TAG,如
public static final String TAG_CAT_ID = "id";
public static final String TAG_TONE_ID = "id";
public static final String TAG_USER_ID = "id";
public static final String TAG_CAT_TITLE = "title";
public static final String TAG_TITLE = "title";
然后我在For循环中解析它们并将结果保存为String,如下所示:
String cat_id = category.getString(TAG_CAT_ID);
String cat_title = category.getString(TAG_CAT_TITLE);
String file_id = file.getString(TAG_TONE_ID);
String file_title = file.getString(TAG_TITLE);
String user_id = user.getString(TAG_USER_ID);
我应该说....类别,文件和用户定义为JSON对象。 到现在为止,每个人都可以,我可以得到我想要的结果:
cat_id -> 4
cat_title -> LIGHT
file_id -> 26
file_title -> Note
user_id -> 12
----------------------
cat_id -> 1
cat_title -> HEAVY
file_id -> 25
file_title -> Photo
user_id -> 2
在本节之后我把这个结果放在HashMap中:
HashMap<String, String> map = new HashMap<String, String>();
map.put(TAG_CAT_ID, cat_id);
map.put(TAG_TONE_ID, tone_id);
map.put(TAG_USER_ID, user_id);
灾难发生了!!对于每个对象...哈希映射只返回一个id !!!!!
cat_id,file_id,user_id .......的相同ID以及cat_title和file_title的一个标题!!!
我哪里错了?!
答案 0 :(得分:1)
public static final String TAG_CAT_ID = "id";
public static final String TAG_TONE_ID = "id";
public static final String TAG_USER_ID = "id";
这些ID是相同的,因此当您输入值时,您使用相同的键。这样你就可以覆盖&#34; id&#34;键值3次。
您的代码与此相当:
map.put("id", cat_id);
map.put("id", tone_id);
map.put("id", user_id);
您应该定义您的ID唯一。