fastjson解析json简介
2019独角兽企业重金招聘Python工程师标准>>>
一、简介
阿里巴巴FastJson是一个Json处理工具包,是一个Java语言编写的高性能功能完善的JSON库。,包括“序列化”和“反序列化”两部分,它具备如下特征:
速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser。包括自称最快的JackJson;
功能强大,完全支持Java Bean、集合、Map、日期、Enum,支持范型,支持自省;无依赖,能够直接运行在Java SE 5.0以上版本;支持Android;开源 (Apache 2.0)
Fastjson API入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。
二、FastJson解析Json步骤
A、服务器端将数据转换成json字符串
首先、服务器端项目要导入阿里巴巴的fastjson的jar包至builtPath路径下(这些可以到fastjson官网下载:http://code.alibabatech.com/wiki/display/FastJSON/Home-zh)
Fastjson API入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。
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 parseObject(String text, Class clazz); // 把JSON文本parse为JavaBean public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray public static final List parseArray(String text, Class 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。
B、客户端将json字符串转换为相应的javaBean
首先客户端也要导入fastjson的两个jar包
1、客户端获取json字符串
/** 接收path服务器端返回的 InputStream, 转换为 json字符串* @author ben**/ public class HttpUtils {public static String getJsonContent(String url_path ,String encode){String jsonString = "";try {URL url = new URL(url_path); HttpURLConnection connection = (HttpURLConnection)url.openConnection();connection.setConnectTimeout(3000);//用POST方式获取数据,也可以改成GETconnection.setRequestMethod("POST");//从服务器获得数据connection.setDoInput(true); int responseCode = connection.getResponseCode(); if (200 == responseCode) {jsonString = changeInputStream(connection.getInputStream(),encode);} } catch (Exception e) {e.printStackTrace();}return jsonString;}private static String changeInputStream(InputStream inputStream , String encode) throws IOException {String jsonString = null;ByteArrayOutputStream outputStream = new ByteArrayOutputStream();byte[] data = new byte[1024];int len = 0;while((len=inputStream.read(data))!=-1){outputStream.write(data, 0, len);}jsonString = new String(outputStream.toByteArray(), encode);inputStream.close();return jsonString;}}2、利用FastJsonTools工具类,将得到的Json字符串进行转化:
public class FastJsonTools {/*** 用fastjson 将json字符串解析为一个 JavaBean* * @param jsonString* @param cls* @return*/public static <T> T getObject(String jsonString, Class<T> cls) {T t = null;try {t = JSON.parseObject(jsonString, cls);} catch (Exception e) {// TODO: handle exceptione.printStackTrace();}return t;}/*** 用fastjson 将json字符串 解析成为一个 List<JavaBean> 及 List<String>* * @param jsonString* @param cls* @return*/public static <T> List<T> getList(String jsonString, Class<T> cls) {List<T> list = new ArrayList<T>();try {list = JSON.parseArray(jsonString, cls);} catch (Exception e) {// TODO: handle exception}return list;}/*** 用fastjson 将jsonString 解析成 List<Map<String,Object>>* * @param jsonString* @return*/public static List<Map<String, Object>> getListMap(String jsonString) {List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();try {// 两种写法// list = JSON.parseObject(jsonString, new// TypeReference<List<Map<String, Object>>>(){}.getType());list = JSON.parseObject(jsonString,new TypeReference<List<Map<String, Object>>>() {});} catch (Exception e) {// TODO: handle exception}return list;} }
转载于:https://my.oschina.net/bigdataer/blog/424748
总结
以上是生活随笔为你收集整理的fastjson解析json简介的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: MYSQL查看和修改存储引擎
- 下一篇: 写接口的体会