JSON格式用于数据传输、bean用于封装数据信息、String用于展现封装信息、json格式的内容用json工具或者之间在json.cn展现比较清晰。
在开发中,常常是前端发送一串数据过来以后,是经过一个参数带着一串值过来,这一串值是String 格式的,可是里面的内容实际上是json格式类型的,因此拿到值以后就要将该值转化成json格式,而后获取里面指定的key就能够拿到该值了。前端
JSONObject jsonObject = JSON.parseObject(tt);
这样就能够将一串参数转化成json对象了,而后经过下面指定的key获取特定的值,以下面所示java
String imei= (String) jsonObject.get("imei");
在返回数据中,要常常返回指定的json格式,我用的是以下所示:json
Map<String,Object>map=new HashMap<>(); map.put("ret",1); map.put("ret1","no"); map.put("tag1",sh.getTOpen()); map.put("video",sh.getfOpen()); map.put("video1",sh.getVOpen()); map.put("video2",sh.getViOpen()); String json=JSON.toJSONString(map);
而后return json;就能够了,不过通常这个值是要加密以后再上传给前端的。segmentfault
FastJSON是一个Java语言编写的高性能,功能完善,彻底支持http://json.org的标准的JSON库。ide
fastJSON的使用说到底就是JSON对象、bean对象、字符串类型,三者之间的相互转化工具
fastjson 经常使用 API:性能
public static final Object parse(String text); // 把JSON文本parse为JSONObject或者JSONArray public static final JSONObject parseObject(String text); // 把JSON文本parse成JSONObject public static final <T> T parseObject(String text, Class<T> clazz); // 把JSON文本parse为JavaBean public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray public static final <T> List<T> parseArray(String text, Class<T> clazz); //把JSON文本parse成JavaBean集合 public static final String toJSONString(Object object); // 将JavaBean序列化为JSON文本 public static final String toJSONString(Object object, boolean prettyFormat); // 将JavaBean序列化为带格式的JSON文本 public static final Object toJSON(Object javaObject); //将JavaBean转换为JSONObject或者JSONArray。
解析:测试
String→bean: parseObject(String text, Class<T> clazz); // 把JSON文本parse为bean; bean→String:toJSONString(Object object);//把bean转换为JSON文本 bean→JSON: toJSON(Object javaObject);//把bean转换为JSONObject或者JSONArray JSON→String: toJSONString(); String→JSON:parse(String text);// 把JSON文本parse为JSONObject或者JSONArray
JSON格式用于数据传输、bean用于封装数据信息、String用于展现封装信息、json格式的内容用json工具或者之间在json.cn展现比较清晰,加密
fastJSON 引用路径:com.alibaba.fastjson.JSON
;spa
引入依赖:
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.1.23</version> </dependency>
示例:
/** *fastJSON测试 */ public class Test { String userName; String sex; }
JSON.toJSONString(Object object)
这个方法很经常使用,就是转成字符串格式
Test test = new Test(); test.setUserName("张三"); test.setSex("男"); System.out.print(JSON.toJSONString(test));
输出结果:
{"sex":"男","userName":"张三"}
将bean转为JSON(JSONObject格式、JSONArray格式于此相似)
Object toJSON(Object javaObject)
示例:
Test test = new Test(); test.setUserName("张三"); test.setSex("男"); //将bean转换为JSON JSONObject json = (JSONObject) JSON.toJSON(test); System.out.print("userName:"+json.get("userName"));
输出结果:userName:张三
3.把JSON文本parse为JSONObject或者JSONArray
Object parse(String text);
Test test = new Test(); test.setUserName("张三"); test.setSex("男"); String str = JSON.toJSONString(test); JSONObject jsonObj = (JSONObject) JSON.parse(str); System.out.print("userName:"+jsonObj.get("userName"));
输出结果:userName:张三
4.把JSON文本parse为bean
Test test = new Test(); test.setUserName("张三"); test.setSex("男"); String str = JSON.toJSONString(test); Test testTemp = JSON.parseObject(str,Test.class); System.out.print("userName:"+testTemp.getUserName());
输出结果:userName:张三
序列化就是指 把JavaBean对象转成JSON格式的字符串。
com.alibaba.fastjson.JSON提供了许多方法(多态)实现序列化。
1.基本的序列化
String objJson = JSON.toJSONString(Object object);
传入一个对象,将对象转成JSON字符串。
例1:将Map转成JSON
Map<String, Object> map = new HashMap<String, Object>(); map.put("key1", "One"); map.put("key2", "Two"); String mapJson = JSON.toJSONString(map);
输出结果:
{"key1":"One","key2":"Two"}
例2:自定义JavaBean User转成JSON。
User user = new User(); user.setUserName("李四"); user.setAge(24); String userJson = JSON.toJSONString(user);
输出结果:
{"age":24,"userName":"李四"}
反序列化就是把JSON格式的字符串转化为Java Bean对象。
com.alibaba.fastjson.JSON提供了许多方法(多态)实现反序列化。
例3:将例2反序列化。
User user1 = JSON.parseObject(userJson, User.class); System.out.println(user1.getUserName());
输出结果:
李四
泛型的反序列化,使用 TypeReference
传入类型信息。
例5:将例1反序列化。
Map<String, Object> map1 = JSON.parseObject(mapJson, new TypeReference<Map<String, Object>>(){}); System.out.println(map1.get("key1")); System.out.println(map1.get("key2"));
输出结果:
One Two
JSONObject,JSONArray是JSON的两个子类。
JSONObject至关于 Map<String, Object>
,
JSONArray至关于List<Object>
。
简单方法示例:
例6:将Map
转成JSONObject
,而后添加元素,输出。
Map<String, Object> map = new HashMap<String, Object>(); map.put("key1", "One"); map.put("key2", "Two"); JSONObject j = new JSONObject(map); j.put("key3", "Three"); System.out.println(j.get("key1")); System.out.println(j.get("key2")); System.out.println(j.get("key3"));
例7:将List
对象转成JSONArray
,而后输出。
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); Map<String, Object> map = new HashMap<String, Object>(); map.put("key1", "One"); map.put("key2", "Two"); Map<String, Object> map2 = new HashMap<String, Object>(); map2.put("key1", "Three"); map2.put("key2", "Four"); list.add(map); list.add(map2); JSONArray j = JSONArray.parseArray(JSON.toJSONString(list)); for(int i=0; i<j.size(); i++){ System.out.println(j.get(i)); }
输出结果:
{"key1":"One","key2":"Two"} {"key1":"Three","key2":"Four"}
相关文章:
fastjson 的使用总结