JSON 之FastJson解析
来源:互联网 发布:警察局里有编程的吗 编辑:程序博客网 时间:2024/04/25 22:43
原文地址:http://blog.sina.com.cn/s/blog_7ffb8dd501013qas.html
一、阿里巴巴FastJson是一个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类上的静态方法直接完成。
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。
二、FastJson解析JSON步骤
然后将数据转为json字符串,核心函数是:
public static String createJsonString(Object value) { String alibabaJson = JSON.toJSONString(value); return alibabaJson; }
B、客户端将json字符串转换为相应的javaBean
1、客户端获取json字符串
public class HttpUtil{ public static String getJsonContent(String urlStr) { try {// 获取HttpURLConnection连接对象 URL url = new URL(urlStr); HttpURLConnection httpConn = (HttpURLConnection) url .openConnection(); // 设置连接属性 httpConn.setConnectTimeout(3000); httpConn.setDoInput(true); httpConn.setRequestMethod("GET"); // 获取相应码 int respCode = httpConn.getResponseCode(); if (respCode == 200) { return ConvertStream2Json(httpConn.getInputStream()); } } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return ""; } private static String ConvertStream2Json(InputStream inputStream) { String jsonStr = ""; // ByteArrayOutputStream相当于内存输出流 ByteArrayOutputStream out = new ByteArrayOutputStream(); byte[] buffer = new byte[1024]; int len = 0; // 将输入流转移到内存输出流中 try { while ((len = inputStream.read(buffer, 0, buffer.length)) != -1) { out.write(buffer, 0, len); } // 将内存流转换为字符串 jsonStr = new String(out.toByteArray()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return jsonStr; }}2、使用泛型获取javaBean(核心函数) public static T getPerson(String jsonString, Class cls) { T t = null; try { t = JSON.parseObject(jsonString, cls); } catch (Exception e) { // TODO: handle exception } return t; }public static List getPersons(String jsonString, Class cls) { List list = new ArrayList(); try { list = JSON.parseArray(jsonString, cls); } catch (Exception e) { } return list; }public static List> listKeyMaps(String jsonString) { List> list = new ArrayList>(); try { list = JSON.parseObject(jsonString, new TypeReference>>() { }); } catch (Exception e) { // TODO: handle exception } return list; }
0 0
- JSON 之FastJson解析
- JSON 之FastJson解析
- JSON 之FastJson解析
- Json解析之FastJson
- JSON 之FastJson解析
- JSON 之FastJson解析
- JSON 之FastJson解析
- JSON 之FastJson解析
- JSON 之FastJson解析
- JSON 之FastJson解析
- JSON 之FastJson解析
- JSON 之FastJson解析
- 解析json 之fastjson
- JSON 之FastJson解析
- JSON 之FastJson解析
- JSON 之FastJson解析
- JSON 之FastJson解析
- JSON 之FastJson解析
- 定时执行任务
- ios项目icon和default图片命名规则
- Linux是如何启动的(面试专题)
- opencv实现字符的垂直投影
- Is Go An Object Oriented Language?
- JSON 之FastJson解析
- 最长公共子串
- Android学习——Activity中带返回类型.
- JS常见兼容问题
- 静态库和动态库的区别
- 关于路径问题
- f
- hdu5015 233 Matrix 西安网络赛I题 构造矩阵
- Spring事务详解