【问题标题】:Use of Object Mapper in Java [closed]在 Java 中使用对象映射器 [关闭]
【发布时间】:2019-10-18 20:25:06
【问题描述】:

我正在为餐厅类编写代码,在序列化期间以给定格式生成 JSON

使用对象映射器转换 json 字符串的最佳方法是什么

Restaurant restaurant = new Restaurant();
restaurant = new ObjectMapper().readValue(jsonString, Restaurant.class);

【问题讨论】:

  • 应该是Restaurant restaurant = new ObjectMapper().readValue(jsonString, Restaurant.class);。第一行中的new Restaurant() 是多余的。
  • 第一行声明了一个Restaurant 变量并为其分配了一个新的Restaurant 对象,该对象随后被放弃。第二行为它分配另一个 Restaurant 对象,该对象是通过反序列化一些 JSON 创建的。
  • @khelwood 我在餐厅课上写什么?
  • @khelwood 我无法理解第二行

标签: java json serialization deserialization


【解决方案1】:

第一行创建了一个新的 Restaurant 对象。第二行还创建了一个新的 Restaurant 对象,但使用 JSON 字符串,您需要 Jackson 库来完成此任务。如果您的要求只是创建一个对象,则不需要第一行。

假设您的 Restaurant 课程如下所示。

class Restaurant {
   private String id;
   private String name;

   //getters and setters
}

你的 JSON 看起来像这样。

String json = "{ \"id\" : \"1\", \"name\" : \"My Restaurant\" }";

然后您可以使用第二行创建 Restaurant 对象

Restaurant restaurant = objectMapper.readValue(json, Restaurant.class);

之后,您可以从餐厅对象中读取 json 值。

System.out.println(restaurant.getName());

输出:

My Restaurant

【讨论】:

  • 餐厅课我该写什么?
  • 我无法理解第二行
【解决方案2】:

ObjectMapper 会将jsonString 中的 JSON 解析为 Restaurant 对象(这就是您将 Restaurant.class 作为参数提供的原因)。然后它将创建的对象存储在restaurant 变量中。

【讨论】:

    猜你喜欢
    • 2013-07-08
    • 2013-07-15
    • 2017-02-28
    • 2010-11-28
    • 2019-09-24
    • 1970-01-01
    • 1970-01-01
    • 2011-03-20
    • 2018-11-02
    相关资源
    最近更新 更多