序列化一個對象成為JSON字符串
User user = new User();
user.setName("小白");
user.setAge(12);
user.setEmail("234@qq.com");
String formarStr = JSON.toJSONString(user);
KLog.d("輸出信息--", formarStr);
輸出信息
{"age":12,"email":"234@qq.com","name":"小白"}
反序列化一個JSON字符串成為一個對象
String jsonString = "{\"name\":\"小黑\",\"age\":20,\"email\":\"333@qq.com\"}";
User user1 = JSON.parseObject(jsonString,User.class);
KLog.d("輸出信息--", user1.toString());
輸出信息
User{name='小黑', age=20, email='333@qq.com'}
數(shù)組序列化成為JSON字符串
List<User> users = new ArrayList<>();
users.add(user);
users.add(user1);
String userStr = JSON.toJSONString(users);
KLog.d("輸出信息-userStr-", userStr);
輸出信息
[{"age":12,"email":"234@qq.com","name":"小白"},{"age":20,"email":"333@qq.com","name":"小黑"}]
JSON字符串反序列化為數(shù)組
List<User> user2 = JSON.parseArray(userStr,User.class);
KLog.d("輸出信息-user2.size()-", user2.size());
輸出信息
2
序列化Map成為JSON字符串
Map<String,Object> dataMap = new HashMap<>();
dataMap.put("tag", "data");
dataMap.put("hospitalName", "我是醫(yī)院名字");
dataMap.put("name", "歐陽夏凡");
dataMap.put("gender", "女");
dataMap.put("age", "28");
dataMap.put("code", "420502042");
dataMap.put("examineDoc", "楊林");
dataMap.put("examineDate", "2016-05-10");
dataMap.put("verifyDoc", "王菲");
KLog.d("MapToJson-", JSON.toJSONString(dataMap));
輸出信息
{"age":"28","code":"420502042","examineDate":"2016-05-10","examineDoc":"楊林","gender":"女","hospitalName":"我是醫(yī)院名字","name":"歐陽夏凡","tag":"data","verifyDoc":"王菲"}
反序列化JSON字符串到Map
Map<String,Object> dataMap = new HashMap<>();
dataMap.put("tag", "data");
dataMap.put("hospitalName", "我是醫(yī)院名字");
dataMap.put("name", "歐陽夏凡");
dataMap.put("gender", "女");
dataMap.put("age", "28");
dataMap.put("code", "420502042");
dataMap.put("examineDoc", "楊林");
dataMap.put("examineDate", "2016-05-10");
dataMap.put("verifyDoc", "王菲");
KLog.d("MapToJson-", JSON.toJSONString(dataMap));
Map<String,Object> maps = JSON.parseObject(JSON.toJSONString(dataMap),Map.class);
KLog.d("JsonToMap-",maps.toString());
方法
Map<String,Object> maps = JSON.parseObject(JSON.toJSONString(dataMap),Map.class);
輸出結(jié)果
{age=28, tag=data, examineDate=2016-05-10, verifyDoc=王菲, name=歐陽夏凡, gender=女, examineDoc=楊林, hospitalName=我是醫(yī)院名字, code=420502042}
如果只想解析某個屬性
User user = new User();
user.setName("小白");
user.setAge(12);
user.setEmail("234@qq.com");
SimplePropertyPreFilter filter = new SimplePropertyPreFilter(User.class, "name");
String formarStr = JSON.toJSONString(user,filter);
KLog.d("輸出信息--", formarStr);
輸出結(jié)果
{"name":"小白"}