第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; } }