java - 如何在 Java 中访问 JSON 文件的所有子类和字符串?
问题描述
我需要打印来自不同 JSON 文件的信息(将在 args[0] 中指定)并打印它们。
所有可能的访问文件都显示为这样(这是 JSON 文件的缩短版本)
{
"DefinitionSource" : "",
"Heading" : "Valley Forge National Historical Park",
"RelatedTopics" : [
"FirstURL" : //url here
"Text" : "hello world"
},
{
"FirstURL" : //url here
"Text" : "hello world"
},
]
根据选择要访问的 JSON 文件,有许多不同的子类。对于指定的 JSON 文件,我需要访问标有“文本”的 JSON 文件中的所有字符串。这是我正在使用的代码:
JsonReader reader = Json.createReader(new StringReader(jsonString));
JsonObject mainObject = reader.readObject();
JSONObject RelatedTopic = json.getJSONObject("RelatedTopics");
String text = RelatedTopic.getString("Text");
System.out.println("Textual Description: " + text);
解决方案
void find_text(JsonObject obj){
Iterator<String> keys = jsonObject.keys();
while (keys.hasNext()){
String key = keys.next()
if (key == "Text") {
.. do your stuff ....
} else if (obj.get(key) instanceof JSONObject)
find_text(obj.get(key))
}
}
这将搜索 JSON 文本的所有键,如果它是一个对象,则递归调用该方法。
推荐阅读
- javascript - 在codeigniter的单个复选框中插入多条记录?
- python-3.x - 具有> 3个特征的分层凝聚聚类
- javascript - Javascript 文件加载其他 Javascript 文件没有窗口/文档
- python - Replace ones in binary columns with values from another column
- php - PHP get_class 错误将 SimpleXML 转换为数组
- r - 如何在 R 的滚动窗口中跳过 NA 列
- html - html5 MKV 带字幕播放
- model-view-controller - Opencart 无法在视图中显示从控制器发送的变量
- php - PHP Dropdown,如何获取选定的文本?
- django - 不同的字段类型序列化器 - Django Rest Framework