这是json文件:{"Type": "File", "File_Name": "tempfile.fasttext", "File_Size": 15}我使用Fastjson反序列化它并显示items..but
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());
}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;
}
},但它没有返回我所期望的,而是
null
null
0我的代码有什么问题?请原谅我糟糕的英语,再次感谢
发布于 2020-05-09 06:25:08
您需要setter函数,JSON需要setter在解析JSON字符串时注入值。而且你所有的getter的格式都不对。试着用这个:
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;
}
}发布于 2020-05-09 07:13:31
我认为您的问题在于用于编写字符串json的语法。如果在fileInfo类中使用json字符串和变量声明中的所有小写字母,则反序列化操作是正确的。我用的是杰克逊图书馆下面的工作程序。
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的数据
https://stackoverflow.com/questions/61692045
复制相似问题