gpt4 book ai didi

java - 如何使用@JsonProperty注释访问JSON子字段?

转载 作者:行者123 更新时间:2023-12-01 14:33:16 25 4
gpt4 key购买 nike

我需要在另一个不同的 json 中转换 json,我使用 @JsonProperty 注释来更改名称字段 JSON 结果,但我不知道访问字段封装在不同的 json 级别中,例如:

{  "prop1" : "value1",
"prop2" : "value2",
"prop3" : {
"prop4" : "value4",
"prop5" : {
"prop6" : "value6"
}
}
}

json结果

  { 
"prop1_new_name":"value1",
"prop4_new_name":"value4",
"prop6_new_name":"value6"
}

最佳答案

这似乎是您之前的 question 的延续。因此,除了按照答案中的说明使用 @JsonUnwrapped 之外,您还需要在声明它的类中的字段上添加 @JsonProperty 。使用 @JsonProperty 修改前面的答案可以得到:

@RunWith(JUnit4.class)
public class Sample {

@Test
public void testName() throws Exception {
SampleClass sample = new SampleClass("value1", "value2", new SubClass("value4", "value5", new SubSubClass("value7")));
new ObjectMapper().writeValue(System.out, sample);
}

@JsonAutoDetect(fieldVisibility=Visibility.ANY)
public static class SampleClass {
private String prop1;
private String prop2;
@JsonUnwrapped
private SubClass prop3;

public SampleClass(String prop1, String prop2, SubClass prop3) {
this.prop1 = prop1;
this.prop2 = prop2;
this.prop3 = prop3;
}
}
@JsonAutoDetect(fieldVisibility=Visibility.ANY)
public static class SubClass {
@JsonProperty("prop4_new_name")
private String prop4;
private String prop5;
@JsonUnwrapped
private SubSubClass prop6;
public SubClass(String prop4, String prop5, SubSubClass prop6) {
this.prop4 = prop4;
this.prop5 = prop5;
this.prop6 = prop6;
}

}
@JsonAutoDetect(fieldVisibility=Visibility.ANY)
public static class SubSubClass{
@JsonProperty("prop7_new_name")
private String prop7;

public SubSubClass(String prop7) {
this.prop7 = prop7;
}
}
}

结果是:

{"prop2":"value2","prop5":"value5","prop7_new_name":"value7","prop4_new_name":"value4","prop1_new_name":"value1"}

关于java - 如何使用@JsonProperty注释访问JSON子字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16697659/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com