好久没有写过Java的代码了,之所以写这个题目,是因为同事的遇到的一个疑问,半小时内恢复功力,将其解决掉。
这里所说的复杂对象是那种属性是另外一个类型的类。
下面的例子使用gson,将java对象转化为json字符串,根据一个json字符串构造出java对象。
直接上码:
Province类:
public class Province { public String PName; public String PCode; @Override public String toString() { return "Province [PName=" + PName + ", PCode=" + PCode + "]"; } }
City类:public class City { public String Name; public String Code; public Province province; @Override public String toString() { return "City [Name=" + Name + ", Code=" + Code + ", province=" + province.toString() + "]"; } }
County类:public class County { public String Name; public String Code; public City city; @Override public String toString() { return "County [Name=" + Name + ", Code=" + Code + ", city=" + city.toString() + "]"; } }
Test类,程序入口:
import com.google.gson.*; public class Test { /** * @param args */ public static void main(String[] args) { Province p; City city; County county; p = new Province(); p.PName = "河北"; p.PCode = "130"; city = new City(); city.Code = "6"; city.Name = "保定"; city.province = p; county = new County(); county.city = city; county.Name = "顺平县"; county.Code = "36"; // 以上,构建了一个复杂对象County的实例:county // 创建Gson对象 Gson gson = new GsonBuilder().setPrettyPrinting().create(); // java对象转化为json字符串 String s = gson.toJson(county); System.out.println(s); String s2 = "{'Name':'上地','Code': '03', 'city': {'Name': '海淀','Code':'02','province': {'PName':'北京','PCode':'110'}}}"; // json字符串转换为java对象 County city2 = gson.fromJson(s2, County.class); // 将其输出 System.out.println(city2); } }
运行结果:
{ "Name": "顺平县", "Code": "36", "city": { "Name": "保定", "Code": "6", "province": { "PName": "河北", "PCode": "130" } } } County [Name=上地, Code=03, city=City [Name=海淀, Code=02, province=Province [PName=北京, PCode=110]]]
体会:gson用着很方便,api很丰富,有类似需求会优先考虑。
gson小试牛刀——复杂对象和JSON字符串相互转化
最新推荐文章于 2025-06-01 09:07:11 发布