首页 > 解决方案 > Java中用于反序列化的POJO类

问题描述

我需要在 Java 中反序列化 Json 以下。你能帮我创建 Pojo 类吗?

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

输入Json:

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

Pojo类

导入 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:无法识别的字段“日志”(日志类),未标记为可忽略(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。

标签: javajsonserializationpojo

解决方案


推荐阅读