我会保持简单 - 尝试使用JACKSON打印此JSON文件的用户名(' user'):
{
"creds" : {
"user": "Y9CJG1756",
"pass": "12222#$1"
},
"env": {
"qa": {
"url": "https://www.walla.com/"
}
}
}
我正在运行此功能,但只能找到一种方法来打印整个对象的字符串' creds'而不仅仅是用户名。
public static void isJsonStringWorks(String filePath) {
try {
JsonNode objectValue;
byte[] jsonData = Files.readAllBytes(Paths.get(filePath));
ObjectMapper objectMapper = new ObjectMapper();
JsonNode rootNode = objectMapper.readTree(jsonData);
objectValue = rootNode.get("creds");
System.out.println("object is: " + objectValue + " ,\n" + rootNode);
} catch (Exception e) {
System.out.println("Could not read the JSON file");
}
}
非常感谢帮助。
答案 0 :(得分:0)
正确的代码是:
objectValue = rootNode.get("creds").get("user").asText()
您还应考虑以下选项:
介绍数据模型的Java表示形式,并将源JSON字符串作为Java对象读取(使用objectMapper.readValue(...)
方法)。之后,可以访问通常的Java bean(root.getCreds().getUser()
)
使用JsonPath访问JSON中的“深层”值以简化JSON值查找。例如,可以获得信用/用户价值,如:
String json = "...";
Object document = Configuration.defaultConfiguration().jsonProvider().parse(json);
String value = JsonPath.read(document, "$.creds.user")
答案 1 :(得分:0)
objectValue.get('user')