/**
* <b>文件名:</b>AA.java<br>
* <b>描述:</b><br>
* <b>作者:</b>FishRoad<br>
* <b>时间:</b>2018年12月28日 下午9:46:33<br>
* Copyright(c) 2018 Joyin Tech,LTD. All Rights Reserved.
*/
package ZRQ;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.List;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
/**
* <b>类名:</b>AA<br>
* <b>描述:</b><br>
* <b>作者:</b>FishRoad<br>
* <b>时间:</b>2018年12月28日 下午9:46:33<br>
*/
public class AAa {
/**
* <b>方法:</b>main<br>
* <b>描述:</b><br>
* <b>作者:</b>FishRoad<br>
* <b>时间:</b>2018年12月28日 下午9:46:33<br>
*
* @param args
* void
* @throws IOException
*/
public static void main(String[] args) throws IOException {
Person person = new Person();
person.setUsername("aaa");
person.setUserid("A001");
person.setAge(10);
D001 d = new D001();
d.setStr("CCCC");
d.setAaa("ZRQ");
List<D001> ls = new ArrayList<D001>();
ls.add(d);
person.setDlst(ls);
//泛型
person.setQlst(ls);
System.out.println(JSONObject.toJSONString(person));
writeObjectToFile(JSONObject.toJSONString(person),"F:\\JSON.txt");
String str = (String) readObjectFromFile("F:\\JSON.txt");
JSONObject jo = JSONObject.parseObject(str);
Person person2 = JSONObject.toJavaObject(jo, Person.class);
//当实体类中有泛型(private List<? extends D000> qlst;)的写法,需按照该方法进行转化
//JSON.parseObject(JSON.toJSONString(resultTo), new TypeReference<ApiResultTo<ClassA>>(){});
//Person person2 = JSON.parseObject(str, new TypeReference<Person>(){});
System.out.println(JSONObject.toJSONString(person2));
}
/**
*
* 从文件中读取对象
* @param fileUrl
* @return
* @see
* @since 1.0
*/
public static Object readObjectFromFile(String fileUrl)
{
Object temp=null;
File file =new File(fileUrl);
FileInputStream in;
try {
in = new FileInputStream(file);
ObjectInputStream objIn=new ObjectInputStream(in);
temp=objIn.readObject();
objIn.close();
System.out.println("read object success!");
} catch (IOException e) {
System.out.println("read object failed");
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return temp;
}
public static void writeObjectToFile(Object obj,String fileUrl)
{
File file =new File(fileUrl);
FileOutputStream out;
try {
out = new FileOutputStream(file);
ObjectOutputStream objOut=new ObjectOutputStream(out);
objOut.writeObject(obj);
objOut.flush();
objOut.close();
System.out.println("write object success!");
} catch (IOException e) {
System.out.println("write object failed");
e.printStackTrace();
}
}
}
/**
* <b>文件名:</b>Person.java<br>
* <b>描述:</b><br>
* <b>作者:</b>zhuruqing<br>
* <b>时间:</b>2019年10月10日 下午3:53:27<br>
* Copyright(c) 2019 Joyin Tech,LTD. All Rights Reserved.
*/
package ZRQ;
import java.util.List;
/**
* <b>类名:</b>Person<br>
* <b>描述:</b><br>
* <b>作者:</b>FishRoad<br>
* <b>时间:</b>2019年10月10日 下午3:53:27<br>
*/
public class Person {
private String userid;
private String username;
private int age;
private List<D001> dlst;
private List<? extends D000> qlst;
public List<? extends D000> getQlst() {
return qlst;
}
public void setQlst(List<? extends D000> qlst) {
this.qlst = qlst;
}
public String getUserid() {
return userid;
}
public void setUserid(String userid) {
this.userid = userid;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public List<D001> getDlst() {
return dlst;
}
public void setDlst(List<D001> dlst) {
this.dlst = dlst;
}
}
/**
* <b>文件名:</b>D001.java<br>
* <b>描述:</b><br>
* <b>作者:</b>FishRoad<br>
* <b>时间:</b>2018年11月16日 下午10:47:25<br>
* Copyright(c) 2018 Joyin Tech,LTD. All Rights Reserved.
*/
package ZRQ;
import java.util.List;
/**
* <b>类名:</b>D001<br>
* <b>描述:</b><br>
* <b>作者:</b>FishRoad<br>
* <b>时间:</b>2018年11月16日 下午10:47:25<br>
*/
public class D001 extends D000{
private String str;
public String getStr() {
return str;
}
public void setStr(String str) {
this.str = str;
}
}
/**
* <b>文件名:</b>D000.java<br>
* <b>描述:</b><br>
* <b>作者:</b>zhuruqing<br>
* <b>时间:</b>2018年11月16日 下午10:51:51<br>
* Copyright(c) 2018 Joyin Tech,LTD. All Rights Reserved.
*/
package ZRQ;
import java.util.List;
/**
* <b>类名:</b>D000<br>
* <b>描述:</b><br>
* <b>作者:</b>FishRoad<br>
* <b>时间:</b>2018年11月16日 下午10:51:51<br>
*/
public class D000 implements Cloneable{
private List<String> lst;
private String aaa;
public String getAaa() {
return aaa;
}
public void setAaa(String aaa) {
this.aaa = aaa;
}
public List<String> getLst() {
return lst;
}
public void setLst(List<String> lst) {
this.lst = lst;
}
}
转化生成的data文件请勿修改,否则读取的时候转化成实体类会报错。
使用的jar包是:fastjson-1.2.7.jar