第1種狀況的json文件 {"name":"狩獵者", "age":['aa','bb','cc'], "tel":"13957809999", "address":"中國湖南衡陽"}
第2種狀況的json文件 [{"name":"狩獵者", "age":['aa','bb','cc'], "tel":"13957809999", "address":"中國湖南衡陽"}, {"name":"飛魚", "age":['aa','bb','cc'], "tel":"13957808888", "address":"中國浙江寧波"}]
對應的pojo類java
public class Person { private String name; private String[] age; private String tel; private String address; public String getName() { return name; } public void setName(String name) { this.name = name; } public String[] getAge() { return age; } public void setAge(String[] age) { this.age = age; } public String getTel() { return tel; } public void setTel(String tel) { this.tel = tel; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } @Override public String toString() { return "Person [name=" + name + ", age=" + Arrays.toString(age) + ", tel=" + tel + ", address=" + address + "]"; } }
public class JsonFileToObject { public static <T> T transferObject(String filePath,T obj){ File file=new File(filePath); StringBuffer sb = new StringBuffer() ; JsonParser jsonParser=new JsonParser(); Gson gson = new Gson(); String line; BufferedReader br=null; try { br=new BufferedReader(new FileReader(file)); while((line=br.readLine())!=null){ sb.append(line); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } String json=sb.toString(); JsonElement jsonElement=jsonParser.parse(json); json = jsonElement.toString(); @SuppressWarnings("unchecked") T transferObj = (T) gson.fromJson(json, obj.getClass()); return transferObj; } public static <T> List<T> transferList(String filePath,T obj){ File file=new File(filePath); StringBuffer sb = new StringBuffer() ; JsonParser jsonParser=new JsonParser(); List<T> objs=new ArrayList<T>(); Gson gson = new Gson(); String line; BufferedReader br=null; try { br=new BufferedReader(new FileReader(file)); while((line=br.readLine())!=null){ sb.append(line); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } String json=sb.toString(); JsonElement jsonElement=jsonParser.parse(json); JsonArray jsonArray=jsonElement.getAsJsonArray(); Iterator<JsonElement> it=jsonArray.iterator(); while(it.hasNext()){ jsonElement=it.next(); json=jsonElement.toString(); @SuppressWarnings("unchecked") T transferObj = (T) gson.fromJson(json, obj.getClass()); objs.add(transferObj); } return objs; } }