我有这个字符串,我使用 ObjectMapper 将其覆盖到 jsonNode。然后我尝试在这个 jsonNode 中查找特定的键,所以我使用了“.has”,但它不起作用!!\n这是我所做的:
\n{ \n "links": {\n "data": {\n "self": {\n "body": "", \n "content_type": "",\n "href": "/api/v2/nodes",\n "method": "POST", \n "name": "" \n } \n }\n },\n "results": { \n "data": {\n "properties": { \n "container": true,\n "container_size": 0,\n "create_date": "2020-06-22T16:19:07",\n "create_user_id": 1000,\n "description": ""\n "description_multilingual": { \n "en": "",\n "fr_FR": "" \n },\n "external_create_date": null,\n "external_identity": "",\n "external_identity_type": "",\n "external_modify_date": null,\n "external_source": "",\n "favorite": false,\n "id": 276625,\n "mime_type": null,\n "modify_date": "2020-06-22T16:19:07",\n "modify_user_id": 1000,\n "name": "mar",\n "name_multilingual": {\n "en": "mar",\n "fr_FR": ""\n },\n "owner": "Admin",\n "owner_group_id": 1001,\n "owner_user_id": 1000,\n "parent_id": 2000,\n "permissions_model": "advanced",\n "reserved": false,\n "reserved_date": null,\n "reserved_shared_collaboration": false,\n "reserved_user_id": 0,\n "size": 0,\n "size_formatted": "0 El\xc3\xa9ments",\n "type": 0,\n "type_name": "Dossier",\n "versions_control_advanced": false,\n "volume_id": -2000 \n } \n } \n }\n}\nRun Code Online (Sandbox Code Playgroud)\n我想测试它是否有“id”键(它实际上存在于第 31 行),所以我使用了.has()如何检查 json 键是否存在?:
ObjectMapper mapper = new ObjectMapper(); \nJsonNode rootNode= mapper.readTree(body);\n if(rootNode.has("id")){\n System.out.println(true);\n }\n else{\n System.out.println(false);\n }\nRun Code Online (Sandbox Code Playgroud)\n但它总是显示我“假”作为输出!
\n如果您尝试查找放置在嵌套对象内的键,则可以使用
findValue(String key)在给定键未找到值时返回 null 的方法:
ObjectMapper mapper = new ObjectMapper();
JsonNode rootNode= mapper.readTree(json);
String[] keys = {
"id", "create_date", "versions_control_advanced", "name", "nofield"
};
for (String key : keys) {
JsonNode value = rootNode.findValue(key);
System.out.printf("Key %s exists? %s --> value=%s%n", key, value != null,
value == null ? null : value.asText());
}
Run Code Online (Sandbox Code Playgroud)
输出:
Key id exists? true --> value=276625
Key create_date exists? true --> value=2020-06-22T16:19:07
Key versions_control_advanced exists? true --> value=false
Key name exists? true --> value=
Key nofield exists? false --> value=null
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
30984 次 |
| 最近记录: |