Gson—使用詳解(1)

public class GjonSpm {
	 public static void main(String[] args) {
	        Gson gson = new GsonBuilder().create();
	        gson.toJson("Hello", System.out);
	        gson.toJson(123, System.out);
	 }
  
}  

轉自http://www.importnew.com/16630.html

在上面的例子中,我們創建了一個Gson實例,並把Java String和int轉化爲JSON對象。以上代碼命令行裏的輸出結果如下:

"Hello"123
注意,上述的結果都將輸入到命令行。該toJason()方法有兩個參數,Java對象轉換爲JSON和可追加(Java的文檔)的一個實例。我們可以很容易地改變了一個文件或網絡流。


	 public static void main(String[] args) throws IOException { 
		 Writer writer = new FileWriter("Output.json");
	        Gson gson = new GsonBuilder().create();
	        gson.toJson("Hello", writer);
	        gson.toJson(123, writer);
	        writer.close();
	 }

注意

爲什麼變量聲明爲Writer類型,而實際類型是FileWriter?

儘量使用泛型是一個很好的方法。在上例中,我們只使用了Appendable和Writer接口定義的方法。使用泛型使代碼更易於移植和維護

以上代碼生成文件:包含JSON對象的Output.json。注意,這裏我們使用了字符流而不是字節流。因爲toJson()方法需要一個Appendanble實例,而字節流不能實現Appendable接口,所以我們使用了字符流。Appendable接口處理字符而不是字節。Java提供了InputStreanReader(Java文檔)和OutputStreamWriter(Java文檔)類進行字節流與字符流的轉換,如下面的例子。

注意

注意,使用InputStreamReader和OutputStreamWriter類時,如果不提供編碼或者字符集,轉換將使用平臺默認字符集。這將降低代碼的可移植性,且在其他平臺上運行將可能產生錯誤行爲。

public static void main(String[] args) throws IOException { 
		 Writer writer = new OutputStreamWriter(new FileOutputStream("Output.json") , "UTF-8");
	            Gson gson = new GsonBuilder().create();
	            gson.toJson("Hello", writer);
	            gson.toJson(123, writer);
	            writer.close();
	 }


如你所見,我們只需要改變實例的一部分。代碼的剩餘部分沒有任何變化。這就是使用接口代替類作爲變量類型的好處之一。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章