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)

然后将数据转为json字符串,核心函数是:
public static String createJsonString(Object value){String alibabaJson = JSON.toJSONString(value);return alibabaJson;}

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简介相关推荐

  1. 78. Spring Boot完美使用FastJson解析JSON数据【从零开始学Spring Boot】

    [原创文章,转载请注明出处] 个人使用比较习惯的json框架是fastjson,所以spring boot默认的json使用起来就很陌生了,所以很自然我就想我能不能使用fastjson进行json解析 ...

  2. fastjson解析JSON数据乱序导致的问题

    本文作者:合肥工业大学 电子商务研究所 钱洋 email:1563178220@qq.com . 内容可能有不到之处,欢迎交流. 未经本人允许禁止转载. 文章目录 问题背景 问题解决 完整的案例代码 ...

  3. Java FastJson解析json字符串 提取键值

    ps : 没啥难点! 总结的两个要点错误请纠正 不想看的直接复制代码运行看结果就行 简单例子为例 (例子在下面 习惯总结写上面 没有好的排版经验) 简单例子没啥要点了 照着套就行 - 之前用的 jav ...

  4. 安卓开发 fastjson 解析json使用详解

    导入 Android studio 在 build.gradle 写依赖 compile 'com.alibaba:fastjson:1.2.37' 反序列化 public static final ...

  5. SpringBoot中使用FastJson解析Json数据

    场景 1.SpringBoot默认配置的是Jackson. 2.项目搭建专栏: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/column/info/35688 ...

  6. 使用fastjson解析json抓取新浪新闻文章

    首先看看2个简单的fastjson的使用 例子一 package ivyy.taobao.com.domain.json;import java.util.Iterator;import com.al ...

  7. 5.spring boot使用FastJson解析JSON数据

    2019独角兽企业重金招聘Python工程师标准>>> 1.引入FastJson依赖包 <dependency><groupId>com.alibaba< ...

  8. Java学习总结(二十)——JSON解析:官方解析,GSON解析,FastJSON解析,

    一.JSON简介: 1.JSON(javaScript Object Notation)是一种轻量级的数据交换格式: 2.JSON数据作为目前网络中主流的数据传输格式之一,应用十分广泛: 3.JSON ...

  9. Andorid中使用Gson和Fast-json解析库解析JSON数据---第三方库学习笔记(二)

    JSON介绍: JSON:JavaScript对象表示法 JSON是存储和交换文本信息的语法. 特点: JSON是轻量级的文本数据交换格式 JSON独立于语言和平台 JSON具有自我描述性,更易理解 ...

最新文章

  1. 损失函数(Loss Function) -1
  2. 从GNOME切换到KDE了
  3. python新手入门教程-Python简明入门教程
  4. 安装phpredis扩展以及phpRedisAdmin工具
  5. 验证Node和npm是否安装成功
  6. 菜鸟学UML--概述
  7. C++中cstring和int互换
  8. Mybatis用#{}从传递过来的参数中取值
  9. Windows编译环境搭建(VS2010)
  10. 数据科学入门与实战:玩转pandas之三
  11. QQ总显示服务器请求中,网站添加QQ登陆 报错 可能是服务器无法请求https协议 解决方法...
  12. 报销金额数字小写转大写 总结
  13. 触发器的三种触发方式:电平触发、边沿触发、脉冲触发区别
  14. 六月软件程序大赛WBS图
  15. win10 excel编辑无响应问题解决方法
  16. macOS Big Sur 11.7.2 (20G1020) 正式版 ISO、PKG、DMG、IPSW 下载
  17. 正弦和余弦(sin和cos)
  18. nginx简介及作用
  19. 面试官:说一下你们线上JVM是如何优化的?一不小心聊了2个小时!!
  20. 基于C#的电脑录屏和录像(工程源码)

热门文章

  1. [Step By Step]SAP HANA创建层次结构的属性视图(Hierarchy Attribute View)
  2. 产品经理第七章:互联网产品团队
  3. 【BZOJ3196】Tyvj 1730 二逼平衡树
  4. webclient下载文件 带进度条
  5. RHEL/CentOS 下安装yum源地址汇集---不定期更新
  6. 使用C#+Linq+SQL快速开发业务
  7. linux学习blog
  8. magento本地安装成功后无法进入后台,密码和用户名均正确 .
  9. 关于select—页面中的ListBox的Javascript
  10. elasticsearch常见报错总结