對(duì)于Android開(kāi)發(fā)來(lái)說(shuō),我們經(jīng)常需要將Java對(duì)象轉(zhuǎn)化為JSON字符串進(jìn)行網(wǎng)絡(luò)傳輸或者存儲(chǔ)到本地文件。Google提供了一個(gè)非常不錯(cuò)的JSON解析庫(kù)Gson庫(kù),Gson庫(kù)提供了將Java對(duì)象轉(zhuǎn)換為JSON字符串的方法,本文主要介紹如何將Java對(duì)象轉(zhuǎn)化為JSON字符串的工具類(lèi)。
首先我們需要在項(xiàng)目的build.gradle中添加以下依賴(lài):
dependencies { implementation 'com.google.code.gson:gson:2.8.7' }
接下來(lái)我們就可以編寫(xiě)一個(gè)單例的工具類(lèi)來(lái)將Java對(duì)象轉(zhuǎn)為JSON字符串了,如下:
public class JsonUtils { private static JsonUtils instance; private Gson gson; private JsonUtils() { gson = new Gson(); } public static synchronized JsonUtils getInstance() { if (instance == null) { instance = new JsonUtils(); } return instance; } public String toJson(Object obj) { return gson.toJson(obj); } }
在上面的工具類(lèi)中,我們創(chuàng)建了一個(gè)私有構(gòu)造方法和單例實(shí)例,并聲明了一個(gè)Gson對(duì)象。toJson方法接收一個(gè)Object類(lèi)型的參數(shù),它使用gson.toJson()將Java對(duì)象轉(zhuǎn)為JSON字符串,并返回JSON字符串。
使用該工具類(lèi)非常簡(jiǎn)單,假設(shè)我們有一個(gè)User對(duì)象,包含name和age兩個(gè)屬性:
public class User { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
那么我們可以這樣將該Java對(duì)象轉(zhuǎn)化為JSON字符串:
User user = new User(); user.setName("張三"); user.setAge(18); String json = JsonUtils.getInstance().toJson(user); Log.d(TAG, "toJson: " + json);
最終輸出的結(jié)果為:
D/MainActivity: toJson: {"name":"張三","age":18}
如此簡(jiǎn)單的將Java對(duì)象轉(zhuǎn)為JSON字符串。當(dāng)然,Gson庫(kù)提供了更多的配置選項(xiàng),如日期格式、精度、Null值等的處理,我們可以進(jìn)一步學(xué)習(xí)深入使用Gson庫(kù)。