Json 节点获取 asLocalDate
Json node get asLocalDate
美好的一天,
请帮忙,我检查了 Jackson JsonNode 但我似乎找不到我要找的东西。
我需要知道如何将 JsonNode
作为 LocalDate
// Example : I can get int value like :
ObjectMapper mapper = new ObjectMapper();
final JsonNode data =mapper.readTree(json);
Int myNumberInt = data.get ("ngNumberInt").asInt();
LocalDate
怎么样,如何从JsonNode
获取?
在我看来,我希望有
LocalDate dateCreated = data.get ("ngDate").asLocalDate();
JsonNode 方法只会为您提供 JSON 数据类型。但是,您可以使用 ObjectMapper 实例反序列化 LocalDate。
objectMapper.readValue(data, LocalDate.class)
如果您还没有,则需要添加 jackson-modules-java8
。这包括 serializer/deserializer 用于 Java 的 LocalDate。
派对可能有点晚了,但您也可以读取字符串然后解析它:
LocalDate date = LocalDate.parse(data.get ("ngDate").asText());
如果日期格式为 ISO_LOCAL_DATE,这将起作用,否则:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("d-MMM-yyyy");
LocalDate date = LocalDate.parse(data.get("ngDate").asText(), formatter);
这里DateTimeFormatter.ofPattern
的参数可以是任何日期格式。在示例中,它将解析类型为“1-Aug-2009”的日期字符串。
使用convertValue
方法
LocalDate date = mapper.convertValue(data.get("date"), LocalDate.class);
如上所述,正确的 java8 日期时间反序列化程序必须在您的对象映射器上注册
美好的一天,
请帮忙,我检查了 Jackson JsonNode 但我似乎找不到我要找的东西。
我需要知道如何将 JsonNode
作为 LocalDate
// Example : I can get int value like :
ObjectMapper mapper = new ObjectMapper();
final JsonNode data =mapper.readTree(json);
Int myNumberInt = data.get ("ngNumberInt").asInt();
LocalDate
怎么样,如何从JsonNode
获取?
在我看来,我希望有
LocalDate dateCreated = data.get ("ngDate").asLocalDate();
JsonNode 方法只会为您提供 JSON 数据类型。但是,您可以使用 ObjectMapper 实例反序列化 LocalDate。
objectMapper.readValue(data, LocalDate.class)
如果您还没有,则需要添加 jackson-modules-java8
。这包括 serializer/deserializer 用于 Java 的 LocalDate。
派对可能有点晚了,但您也可以读取字符串然后解析它:
LocalDate date = LocalDate.parse(data.get ("ngDate").asText());
如果日期格式为 ISO_LOCAL_DATE,这将起作用,否则:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("d-MMM-yyyy");
LocalDate date = LocalDate.parse(data.get("ngDate").asText(), formatter);
这里DateTimeFormatter.ofPattern
的参数可以是任何日期格式。在示例中,它将解析类型为“1-Aug-2009”的日期字符串。
使用convertValue
方法
LocalDate date = mapper.convertValue(data.get("date"), LocalDate.class);
如上所述,正确的 java8 日期时间反序列化程序必须在您的对象映射器上注册