java - 从 JsonObject 中提取所有名称元素
问题描述
我无法从我的 JsonObject 中提取正确的信息。目前,我正在从 Web API 接收这种类型的字符串:
{"start_game_items":{"11":98,"14":39,"16":120,"20":51,"27":60,"34":2,"39":5,"42":4,"44":98,"181":4,"237":13,"241":5}}
我感兴趣的信息是“”中的每个数字,例如“11”、“14”等。这些数字代表计算机游戏中的特定项目,因此它们很可能与 Web API 中的每个字符串不同。目前我正在这样做:
// below is the String that I displayed in the top "{"start_game_item":{"11"..}""
String jsonString = itemData[0];
JsonObject jsonObject = JsonParser.parseString(jsonString).getAsJsonObject();
Set entrySet = jsonObject.entrySet();
Object[] items = entrySet.toArray();
for (Object o : items) {
System.out.println(o.toString());
}
但是当我这样做时,我会收到与之前发布的相同的行。谁能看到我哪里出错了?我正在为 Java 使用 google.gson 库。
编辑:我之前有一个类似的问题,我收到了这种类型的字符串:
{"1":"blink","2":"blades_of_attack","3":"broadsword","4":"chainmail","5":"claymore","6":"helm_of_iron_will","7":"javelin","8":"mithril_hammer","9":"platemail","10":"quarterstaff",..}
这些项目编号映射到项目名称的位置。但是,这是我通过这样做解决的一个大数组:
String jsonString = itemIDData[0];
JsonObject jsonObject = JsonParser.parseString(jsonString).getAsJsonObject();
Set keySet = jsonObject.keySet();
List<String> listJsonObjectKeys = new ArrayList<String>();
// Now we add each Key from the jsonObject to a List, so we can use the ID(Key).
for (Object key : keySet) {
listJsonObjectKeys.add(key.toString());
}
for (int i = 0; i < keySet.size(); i++) {
String currentIDString = listJsonObjectKeys.get(i);
JsonElement currentItem = jsonObject.get(currentIDString);
String itemName = currentItem.getAsString();
int currentID = Integer.parseInt(currentIDString);
itemIDMap.put(currentID, itemName);
}
}
我尝试使用与我发布的问题类似的逻辑,但在提取所需信息时遇到问题。
解决方案
这就是你想要的:
String jsonString = itemData[0];
JsonObject jsonObject = JsonParser.parseString(jsonString).getAsJsonObject();
for ( Entry e : jsonObject.getAsJsonObject( "start_game_items" ).entrySet() ) {
System.out.println( e.getKey() );
}
推荐阅读
- python - 如何在 Python 中将 CSV 列数据拆分为两列
- bash - 使用 -ldflags 传递给 Go 编译器的字符串中的 Shell 变量未展开
- hosting - 我应该在godaddy 或hoster 中设置子域吗?域名从 godaddy 指向托管商
- c# - 异步填充字典
- python - 用于在屏幕上搜索特定单词的代码 [PYTHON]
- java - 如何验证列表元素是否与另一个列表的顺序相同?
- android - Android:在 eink 设备上使用 fb0 绘图
- java - 在 springBoot 上设计一个 MongoDB 模式
- excel - 在 VBA 中清除组合框的内容
- google-oauth - 为什么 Google OAuth Api 会刷新 Token?