【问题标题】:How to get LocalDate value in String format from JsonNode object?如何从 JsonNode 对象中获取字符串格式的 LocalDate 值?
【发布时间】:2021-02-05 16:13:36
【问题描述】:

我正在尝试从 JsonNode 获取日期值。我有一个汽车对象,它具有汽车名称并已发布 LocalDate。

public class Car {

  String carName;

  LocalDate released;

}

我需要将它转换成JsonNode,所以我这样做了。

  ObjectMapper obj = new ObjectMapper();

  JsonNode node = obj.valueToTree(car);

直到这里我都很好。一旦我有了 JsonNode,我需要从中读取它。

String carName = node.at("/carName").textValue();

LocalDate date = node.at("/released").textValue(); 

如何从 JsonNode 获取 LocalDate 格式或字符串格式的 LocalDate 值?

【问题讨论】:

  • 你能澄清一下吗?如果您想要日期的文本表示,那么String date = node.at("/released").textValue(); 不工作吗?当您从具体类转到 JsonNode 然后尝试读出值时,我很难理解您要完成的工作。
  • 您好,感谢您的调查。实际上,我正在尝试这种方式, String date = node.at("/released").textValue();但它不起作用,不幸的是没有像 asDateValue() 这样的方法可用。所以回答你的问题,我需要从 JsonNode 获取 LocalDate 值。我如何使用以及使用什么并不重要。希望这是有道理的。再次感谢!
  • 好的,当你调用.textValue()时会发生什么?
  • 我得到空值。对于字符串值,假设我想获取 carName,我可以执行 .textValue() 并能够获取字符串值。
  • 是的,它可能不是字符串值。查看这篇文章以获取有关如何更改 LocalDate stackoverflow.com/questions/28802544/… 序列化的选项

标签: objectmapper jackson-databind jsonnode


【解决方案1】:

成功了。我使用了 objectMapper.registerModule(new JavaTimeModule()); objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);我现在可以从 JsonNode 获取字符串值了。

【讨论】:

    猜你喜欢
    • 2015-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-16
    • 1970-01-01
    • 2023-02-25
    • 1970-01-01
    • 2015-03-26
    相关资源
    最近更新 更多