当前位置: 首页 > 面试题库 >

如何使用Jackson更改JSON中的字段名称

湛联
2023-03-14
问题内容

我正在使用杰克逊将我的对象转换为json。该对象具有2个字段:

@Entity
public class City {
   @id
   Long id;
   String name;
   public String getName() { return name; }
   public void setName(String name){ this.name = name; }
   public Long getId() { return id; }
   public void setName(Long id){ this.id = id; }
}

由于我想将其与jQuery自动完成功能一起使用,因此我希望“ id”在json中显示为“ value”,在“ name”中显示为“
label”。杰克逊的文档不明确这一点,我已经想尽注释,甚至远程好像它做什么,我需要,但我不能让name显示为label,并id显示为value在JSON。

有谁知道该怎么做或是否可能?


问题答案:

您是否尝试过使用@JsonProperty?

@Entity
public class City {
   @id
   Long id;
   String name;

   @JsonProperty("label")
   public String getName() { return name; }

   public void setName(String name){ this.name = name; }

   @JsonProperty("value")
   public Long getId() { return id; }

   public void setId(Long id){ this.id = id; }
}


 类似资料:
  • 问题内容: 场景 :考虑我有一个JSON文档,如下所示: 问题:我想更改文档中字段的顺序/顺序,说我要,然后最后一次。 到目前为止,我将值存储在临时变量中,删除该字段并重新创建相同的字段。由于重新分配不起作用:( 我是通过以下方式做到的: 这样我将获得所需的有序JSON文档。这项要求很特殊,但我仍然需要一些有效的解决方案 问题 :有人可以通过有效的方法来帮助实现这一目标吗? 问题答案: 可能是您可

  • 问题内容: 我有一个带有一个可选字段的对象,找不到合适的注释来对其建模。有什么想法和Jackson一起做的正确方法是什么? 问题答案: 在Jackson中,您无法区分可选字段和非可选字段。只需在您的POJO中声明任何字段即可。如果您的JSON结构中没有字段,那么Jackson将不会调用setter。您可以跟踪在POJO中是否用标志调用了setter。

  • 问题内容: 我正在尝试像SQL中的别名一样更改DRF序列化器中的“模型”字段名称。我尝试了不同的方法,但无法成功。 models.py serializers.py 我也曾尝试在Django Queryset中添加别名,但无法更改。 更新 这是我面临的例外 / ViewName /’模块’对象上的AttributeError没有属性’Field’ 我怎样才能做到这一点? 问题答案: 序列化程序字段

  • 问题内容: 我要呼吁汇率第三方API,但JSON返回不断变化,如果我申请到的转换,它将返回我:,所以如果我的要求来,它将返回我。 我将不得不使用将返回的结果映射到pojo中,是否有任何可行的方法? 我当前的硬编码解决方法: 问题答案: 是具有值的字段的对象。 否是with键/值对。 两者都是正确的,但是由于before的值是动态的(变化的),因此它是您需要的第二种解释。 因此,请勿要求将JSON转

  • 我希望获得以下输出:(我所要做的就是删除字段名,但保留其子字段名。) 以下是我的POJO,由使用: 下面是MAP在搜索过程中使用的我的: null 是否有一种方法可以使它与和一起使用,因为我不能同时使用这两种方法。 有人能帮忙解决这个问题吗?请指导我适当的文档或变通方法,非常感谢。

  • 问题内容: 对于此目标页面(对不起,但是SO不允许超链接到62.0.54.118): ,我想在默认情况下使用用户脚本更改名称字段。 输入为: 我想将其更改为: 也就是说,我想默认将输入的字段更改为。 我尝试编写一个脚本,(不起作用): 另外,该页面是Ajax驱动的页面。 请修复错误的脚本或帮助我编写另一个脚本,谢谢。 更新: 我通过将脚本的一行更改为来解决了部分问题: 至 然后我的脚本效果更好。感