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();
	 }


如你所见,我们只需要改变实例的一部分。代码的剩余部分没有任何变化。这就是使用接口代替类作为变量类型的好处之一。




你可能感兴趣的:(Json)