首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Fastjson反序列化返回null

Fastjson反序列化返回null
EN

Stack Overflow用户
提问于 2020-05-09 05:04:02
回答 2查看 487关注 0票数 0

这是json文件:{"Type": "File", "File_Name": "tempfile.fasttext", "File_Size": 15}我使用Fastjson反序列化它并显示items..but

代码语言:javascript
复制
    public static void deserializejson(String json){
        fileinfo fileinfo2 = JSON.parseObject(json, fileinfo.class);
        System.out.println(fileinfo2.getfiletype());
        System.out.println(fileinfo2.getFile_Name());
        System.out.println(fileinfo2.getfilesize());
    }
代码语言:javascript
复制
public class fileinfo {
    private String File_Name;
    private String Type;
    private int File_Size;

    public String getFile_Name(){
        return  File_Name;
    }

    public String getfiletype(){
        return Type;
    }

    public int getfilesize(){
        return File_Size;
    }
}

,但它没有返回我所期望的,而是

代码语言:javascript
复制
null
null
0

我的代码有什么问题?请原谅我糟糕的英语,再次感谢

EN

回答 2

Stack Overflow用户

发布于 2020-05-09 06:25:08

您需要setter函数,JSON需要setter在解析JSON字符串时注入值。而且你所有的getter的格式都不对。试着用这个:

代码语言:javascript
复制
class fileinfo {
    private String File_Name;
    private String Type;
    private int File_Size;

     public String getFile_Name() {
         return File_Name;
     }

     public void setFile_Name(String file_Name) {
         File_Name = file_Name;
     }

     public String getType() {
         return Type;
     }

     public void setType(String type) {
         Type = type;
     }

     public int getFile_Size() {
         return File_Size;
     }

     public void setFile_Size(int file_Size) {
         File_Size = file_Size;
     }
 }
票数 0
EN

Stack Overflow用户

发布于 2020-05-09 07:13:31

我认为您的问题在于用于编写字符串json的语法。如果在fileInfo类中使用json字符串和变量声明中的所有小写字母,则反序列化操作是正确的。我用的是杰克逊图书馆下面的工作程序。

代码语言:javascript
复制
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;


public class App {
static String jsondata = "{\"type\": \"file\", \"filename\": \"tempfile.fasttext\", \"filesize\": 15}";

public static void main(String[] args) {

    ObjectMapper mapper = new ObjectMapper();
    fileinfo fi = null;
    try {
        fi = mapper.readValue(jsondata, fileinfo.class);
    } catch (JsonMappingException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (JsonProcessingException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    System.out.println("data drom json to infoFile.class =>" + fi.getFilename());

}

public static class fileinfo {
    private String filename;
    private String type;
    private int filesize;

    public fileinfo() {
        super();
    }

    public String getFilename() {
        return filename;
    }

    public void setFilename(String filename) {
        this.filename = filename;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public int getFilesize() {
        return filesize;
    }

    public void setFilesize(int filesize) {
        this.filesize = filesize;
    }

}

}

输出:从json到infoFile.class =>tempfile.fasttext的数据

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61692045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档