FastJson读取JSON⽂件到本⽂介绍了如何读取⼀个json⽂本⽂件,并把数据保存到⼀个java对象中。
基本使⽤
从.json⽂件中读取:
String srcPath ="saveNumpyAsJsonFile.json";
JSONReader jsonReader =getJsonReader(srcPath);
PatchTestData patchTestData = adObject(PatchTestData.class);
private JSONReader getJsonReader(String srcPath){
JSONReader jsonReader = null;
try{
FileReader fileReader=new CacheDir().toString()+ File.separator + srcPath); jsonReader =new JSONReader(fileReader);
}catch(FileNotFoundException e){
fastjson怎么用Log.d(TAG,"loadTestData: 读取失败");
e.printStackTrace();
}
return jsonReader;
}
这需要构建 java Bean类作ORM
public class PatchTestData {
float[][][][] img;// 对应json数组变量名字就是json中的key
float[][] shift;// 对应json数组
float result;
public PatchTestData(){
}
public PatchTestData(float[][][][] img,float[][] shift,float result){ this.img = img;
this.shift = shift;
}
public float[][][][]getImg(){
return img;
}
public void setImg(float[][][][] img){
this.img = img;
}
public float[][]getShift(){
return shift;
}
public void setShift(float[][] shift){
this.shift = shift;
}
public float getResult(){
return result;
}
public void setResult(float result){
}
@Override
public String toString(){
return"PatchTestData{"+
"img="+ String(img)+
", shift="+ String(shift)+
", result="+ result +
'}';
}
}
逐层剥洋葱⽅法
private List<List<List<List<Float>>>>readImgFromJsonReader(JSONReader jsonReader){
List<List<List<List<Float>>>> imageData;
jsonReader.startArray();//---> [ 开启读List对象
imageData =new ArrayList<>();
while(jsonReader.hasNext()){//[
jsonReader.startArray();
List<List<List<Float>>> listDim2=new ArrayList<>();
while(jsonReader.hasNext()){//[
jsonReader.startArray();
List<List<Float>> listDim3=new ArrayList<>();
while(jsonReader.hasNext()){//[
jsonReader.startArray();
ArrayList<Float> listDim4=new ArrayList<>(4);
while(jsonReader.hasNext()){//[
listDim4.add(Float.adString()));
}
listDim3.add(listDim4);
}
listDim2.add(listDim3);
}
imageData.add(listDim2);
}
return imageData;
}
[外链图⽚转存失败,源站可能有防盗链机制,建议将图⽚保存下来直接上传(img-CfvBILTL-1602653518075)(34 FastJson使⽤.assets/image-20200923143607765.png)]
}
return imageData;
}
[外链图⽚转存中...(img-CfvBILTL-1602653518075)]
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论