Java中用于反序列化的POJO类

发布时间:2020-07-07 17:37

我需要在Java的Json下面反序列化。您能帮我建立Pojo类吗?

我有一个像下面这样的POJO类,但是当我尝试反序列化时,它会抛出错误。

输入Json:

 {
    
        "log": {
            "version": "1.2",
            "creator": "Test",
            "pages": [],
            "entries": [
                {
                    "Tag1": "01"
                },
                {
                    "Tag2": "std"
                }
            ]
        }
    }

Pojo课程

import java.util.ArrayList;

public class Log {
    
    public  Log() {}
    
    private String  version;
    private Creator creator;
    private ArrayList<String> pages;
    private Entries entries[];
    
    public String getVersion() {
        return version;
    }
    public void setVersion(String version) {
        this.version = version;
    }
    public Creator getCreator() {
        return creator;
    }
    public void setCreator(Creator creator) {
        this.creator = creator;
    }
    public ArrayList<String> getPages() {
        return pages;
    }
    public void setPages(ArrayList<String> pages) {
        this.pages = pages;
    }
    public Entries[] getEntries() {
        return entries;
    }
    public void setEntries(Entries[] entries) {
        this.entries = entries;
    }
    
        

}

我的主班

公共类HarNew {

public static void main(String[] args) {
    
    File f = new File("C:\\Users\\Shankar.Manickam\\Desktop\\onerequestwthouttransfer.json");
    
    ObjectMapper mapper =  new ObjectMapper();
     

     
     
    try {
        Log log = mapper.readValue(f, Log.class);
        String s = mapper.writeValueAsString(log);
        System.out.println(s);
        
        System.out.println("URL is\t"+log.getVersion());
        System.out.println("URL is\t"+log.getVersion());
    } catch (JsonParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (JsonMappingException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

     
}
     

}

错误

com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException:无法识别的字段“ log”(类Log),未标记为可忽略(4个已知属性:“版本”,“创建者”,“条目”,“页面”) ) 在[来源:(文件);行:2,列:10](通过参考链:Log [“ log”]) 在com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:61) 在com.fasterxml.jackson.databind.DeserializationContext.handleUnknownProperty(DeserializationContext.java:840) 在com.fasterxml.jackson.databind.deser.std.StdDeserializer.handleUnknownProperty(StdDeserializer.java:1179) 在com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownProperty(BeanDeserializerBase.java:1592) 在com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownVanilla(BeanDeserializerBase.java:1570) 在com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:294) 在com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:151) 在com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4202) 在com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3070) 在HarNew.main(HarNew.java:21)

回答1