GSON示例
时间:2020-02-23 14:41:23 来源:igfitidea点击:
在本教程中,我们将看到我们如何使用GSON读取和编写JSON。
使用JSON-Simple阅读和编写JSON。
我们将使用另一种方式(即,GSON)阅读JSON。
GSON是一个Java库,可用于将Java对象转换为JSON表示。
它也可用于将JSON字符串转换为等效的Java对象。
GSON可以使用任意Java对象,包括我们没有源代码的预先存在的对象。
使用GSON有各种目标或者优势(取自GSON摘机页面)
- 提供简单的tojson()和fromjson()方法,将Java对象转换为JSON,反之亦然
- 允许预先现有的未经修复对象转换为json和json
- 大量支持Java泛型
- 允许对象的自定义表示
- 支持任意复杂的对象(具有深度继承层次结构和广泛使用通用类型)
使用GSON阅读和编写JSON非常简单。
我们可以使用这两种方法:tojson():它会将简单的pojo对象转换为JSON字符串。
fromjson():它将将JSON字符串转换为POJO对象。
在本教程中,我们将使用GSON读写JSON。
从这里下载Gson-2.2.4罐。
创建名为"gsonexample"的Java项目创建一个文件夹jar和粘贴下载的jar gson-2.2.4.jar。
右键单击项目 - >属性 - > java构建路径 - >添加jar然后转到src-> jars-> Gson-2.2.4.jar。
单击确定。
然后,我们将看到JSON-Simple-1.1 JAR添加到库中,然后单击确定
首先创建一个名为"country.java"的pojo
package org.igi.theitroad.pojo; import java.util.ArrayList; import java.util.List; public class Country { String name; int population; private List listOfStates; //getter and setter methods public String getName() { return name; } public void setName(String name) { this.name = name; } public int getPopulation() { return population; } public void setPopulation(int population) { this.population = population; } public List getListOfStates() { return listOfStates; } public void setListOfStates(List listOfStates) { this.listOfStates = listOfStates; } }
将JSON写入文件:
在src-> org.igi.theitroad中创建名为"gsonwritingtofileexample.java"的新类
package org.igi.theitroad; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.igi.theitroad.pojo.Country; import com.google.gson.Gson; /* * @Author : igi Mandliya */ public class GSONWritingToFileExample { public static void main(String[] args) { Country countryObj=new Country(); countryObj.setName("Netherlands"); countryObj.setPopulation(1000000); List listOfStates=new ArrayList(); listOfStates.add("Madhya Pradesh"); listOfStates.add("Maharastra"); listOfStates.add("Rajasthan"); countryObj.setListOfStates(listOfStates); Gson gson = new Gson(); //convert java object to JSON format, //and returned as JSON formatted string String json = gson.toJson(countryObj); try { //write converted json data to a file named "CountryGSON.json" FileWriter writer = new FileWriter("E:CountryGSON.json"); writer.write(json); writer.close(); } catch (IOException e) { e.printStackTrace(); } System.out.println(json); } }
运行上面的程序和文件的内容CountryGson.json将如下:
{"name":"Netherlands","population":1000000,"listOfStates":["Madhya Pradesh","Maharastra","Rajasthan"]}
阅读JSON到文件:
其中我们将阅读以上创建的JSON文件。
在src-> org.igi.onitoad中创建一个名为"jsonsimplereadingfromfilexample.java"的新类
package org.igi.theitroad; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.util.List; import org.igi.theitroad.pojo.Country; import com.google.gson.Gson; /* * @Author : igi Mandliya */ public class GSONReadingFromFileExample { public static void main(String[] args) { Gson gson = new Gson(); try { System.out.println("Reading JSON from a file"); System.out.println("----------------------------"); BufferedReader br = new BufferedReader( new FileReader("E:file.json")); //convert the json string back to object Country countryObj = gson.fromJson(br, Country.class); System.out.println("Name Of Country: "+countryObj.getName()); System.out.println("Population: "+countryObj.getPopulation()); System.out.println("States are :"); List listOfStates = countryObj.getListOfStates(); for (int i = 0; i < listOfStates.size(); i++) { System.out.println(listOfStates.get(i)); } } catch (IOException e) { e.printStackTrace(); } } }
运行上面的程序,我们将获取以下输出:
Reading JSON from a file --------------------------- Name Of Country: Netherlands Population: 1000000 States are : Madhya Pradesh Maharastra Rajasthan