ObjectMapper readValue

后端 未结 3 696
猫巷女王i
猫巷女王i 2021-01-22 12:37

I load a ressource file json with the text format

{
    \"sources\": [{
            \"prop1\": \"1\",
            \"prop2\": \"2\"

        },
        {
                 


        
3条回答
  •  遥遥无期
    2021-01-22 12:40

    I actually voted for the other answer, but this is my idea, to create the classes and let jackson do the work :

    public class ResourceTest {
    
        @Test
        public void test1() throws IOException {
            assertTrue(true);
    
            Resource resource = new Resource();
    
            resource.getRedirectrions().add(makeRedirectrion("rprop11", "rprop12"));
            resource.getRedirectrions().add(makeRedirectrion("rprop21", "rprop22"));
    
            resource.getSources().add(makeSource("sprop11","sprop12"));
            resource.getSources().add(makeSource("sprop21","sprop22"));
    
            String json = new ObjectMapper().writeValueAsString(resource);
            System.out.println(json);
    
            Resource resource1 = new ObjectMapper().readValue(json, Resource.class);
            System.out.println(resource1);
        }
    
        private Source makeSource(String prop1, String prop2) {
            Source source = new Source();
            source.setProp1(prop1);
            source.setProp2(prop2);
            return source;
        }
    
        private Redirectrion makeRedirectrion(String prop1, String prop2) {
            Redirectrion redirectrion = new Redirectrion();
            redirectrion.setProp1(prop1);
            redirectrion.setProp2(prop2);
            return redirectrion;
        }
    
    }
    

    Output is:

    {"sources":[{"prop1":"sprop11","prop2":"sprop12"},{"prop1":"sprop21","prop2":"sprop22"}],"redirectrions":[{"prop1":"rprop11","prop2":"rprop12"},{"prop1":"rprop21","prop2":"rprop22"}]}
    Resource{sources=[Source{prop1='sprop11', prop2='sprop12'}, Source{prop1='sprop21', prop2='sprop22'}], redirectrions=[Source{prop1='rprop11', prop2='rprop12'}, Source{prop1='rprop21', prop2='rprop22'}]}
    

提交回复
热议问题