zoukankan      html  css  js  c++  java
  • FastJSON 简单使用

    FastJSON是一个Java语言编写的高性能,功能完善,完全支持http://json.org的标准的JSON库。

    如果使用Maven,在pom.xml文件加入以下依赖。

    <dependency>
         <groupId>com.alibaba</groupId>
         <artifactId>fastjson</artifactId>
         <version>1.1.23</version>
     </dependency>

    5.1 序列化

    序列化就是指 把JavaBean对象转成JSON格式的字符串。

    com.alibaba.fastjson.JSON提供了许多方法(多态)实现序列化。

    5.1.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:将List<Map>转成JSON。

    List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
            
    Map<String, Object> map1 = new HashMap<String, Object>();
    map1.put("key1", "One");
    map1.put("key2", "Two");
            
    Map<String, Object> map2 = new HashMap<String, Object>();
    map2.put("key1", "Three");
    map2.put("key2", "Four");
            
    list.add(map1);
    list.add(map2);
            
    String listJson = JSON.toJSONString(list);

    输出结果:

    [{"key1":"One","key2":"Two"},{"key3":"Three","key4":"Four"}]

    可以输出格式化后的 JSON 字符串。

    String objJson = JSON.toJSONString(Object object, boolean prettyFormat);

    传入一个对象和一个布尔类型(是否格式化),将对象转成格式化后的JSON字符串。

    例3:以例2代码为例。

    String listJson = JSON.toJSONString(list, true);

    输出结果为:

    [
        {
            "key1":"One",
            "key2":"Two"
        },
        {
            "key3":"Three",
            "key4":"Four"
        }
    ]
    5.1.2 FastJSON提供了许多特性支持
    String objJson = JSON.toJSONString(Object object, SerializerFeature... features) 

    传入一个对象和SerializerFeature类型的可变变量。SerializerFeature是一个枚举。

    5.2 反序列化

    反序列化就是把JSON格式的字符串转化为Java Bean对象。

     简单举几个例子。

    指定Class信息反序列化。

    User user1 = JSON.parseObject(userJson, User.class);

    集合反序列化。

    List<Map> list1 = JSON.parseArray(listJson, Map.class);

    泛型的反序列化(使用TypeReference传入类型信息)。

    Map<String, Object> map1 = JSON.parseObject(mapJson, new TypeReference<Map<String, Object>>(){});

    5.3 其他(JSONObject,JSONArray)

    JSONObject,JSONArray是JSON的两个子类。

    JSONObject相当于Map<String, Object>

    JSONArray相当于List<Object>

    简单方法示例:

    例16:将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"));

    输出结果:

    One
    Two
    Three

    例17:将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"}
  • 相关阅读:
    数据库索引概念与优化
    数据库查询效率分析
    C语言结构体与C++结构体之间的差异
    判断一个序列是否为栈的弹出序列
    C语言中的结构体
    C++ STL 中的 std::sort()
    Spring注入值到静态变量
    层次遍历二叉树
    计算二叉树的大小
    计算二叉树的高度
  • 原文地址:https://www.cnblogs.com/dztHome/p/9019825.html
Copyright © 2011-2022 走看看