gpt4 book ai didi

java - 解析JSON并将其放入HashMap中

转载 作者:行者123 更新时间:2023-12-01 13:11:55 25 4
gpt4 key购买 nike

我有一个像这样的 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"
}
}
.
.
.
]

当我解析这个 block 时,一切都很好,直到我想将解析后的节点放入 Hashmap 为止。为了解析,我将节点和对象定义为标签,例如

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 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);

灾难发生了!!对于每个对象... HashMap 仅返回一个 id!!!!cat_id、file_id、user_id 具有相同的 id......并且 cat_title 和 file_title 具有一个标题!!!

我哪里错了?!

最佳答案

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 是相同的,因此当您输入值时,您使用相同的 key 。这样您就可以覆盖“id”键的值 3 次。

您的代码相当于:

map.put("id", cat_id);
map.put("id", tone_id);
map.put("id", user_id);

您应该定义您的 ID 是唯一的。

关于java - 解析JSON并将其放入HashMap中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22789993/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com