欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

fastjson解析json简介

发布时间:2025/5/22 编程问答 25 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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)

然后将数据转为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简介的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。