Convert JSON many objects to single JSON using Jackson

前端 未结 2 1304
北海茫月
北海茫月 2020-12-10 03:46

I have JSON, with differents levels field, so I want to convert to a single JSON with fields with one level for example:

{
  \"prop1\":\"value1\",
  \"prob2         


        
相关标签:
2条回答
  • 2020-12-10 04:06

    JsonUnwrapped is the annotation to use, it even works for multi-level nesting. For example:

    @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 {
            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{
            private String prop7;
    
            public SubSubClass(String prop7) {
                this.prop7 = prop7;
            }
        }
    }
    

    will generate

    {"prop1":"value1","prop2":"value2","prop4":"value4","prop5":"value5","prop7":"value7"}
    
    0 讨论(0)
  • 2020-12-10 04:15

    Try implementing the @JsonUnwrapped annotation. More information at http://jackson.codehaus.org/1.9.9/javadoc/org/codehaus/jackson/annotate/JsonUnwrapped.html

    0 讨论(0)
提交回复
热议问题