• 数据解析框架之FastJson


    演示实体类

    import java.util.List;
    public class Student {
        public String name;
        public int          age;
        public List<String> score;
    }

    JSON.toJSONString方法的使用

    JSON.toJSONString(Object object)方法 :

    方法定义 : public static final String toJSONString(Object object) ;

    方法作用 : 将 java bean 转为 json 字符串;

    方法位置 : String com.alibaba.fastjson.JSON.toJSONString(Object object) ;

    参数介绍 : Object object -> 要转换的实体类对象;

    JSON.toJSONString(Object object, boolean prettyFormat)方法 :

    方法定义 : public static final String toJSONString(Object object, boolean prettyFormat) ;

    方法作用 : 将java bean 转为json字符串,并将json字符串格式化;

    方法位置 : String com.alibaba.fastjson.JSON.toJSONString(Object object, boolean prettyFormat) ;

    参数介绍 : Object object要转换的实体类对象, boolean prettyFormat是否将 json 字符串格式化 如果 false 与 上面的方法作用相同;


    演示代码:

    Student student = new Student();
    student.age = 18;
    student.name = "张三";
    ArrayList<String> list = new ArrayList<>();
    list.add("90");
    list.add("20");
    list.add("50");
    student.score = list;
    String s1 = JSON.toJSONString(student);
    System.out.println("json字符串数据 : " + s1);
    String s2 = JSON.toJSONString(student,true);
    System.out.println("json字符串格式化数据: " + s2);
    

     打印输出:


    JSON.toJSON 方法的使用

    JSON.toJSON(Object javaObject) 方法

    方法定义 : public static final Object toJSON(Object javaObject) ;

    方法作用 : 将 java bean 对象转为 JSONObject 对象, 或者将 集合 转为 JSONArray 对象;

    方法位置 : Object com.alibaba.fastjson.JSON.toJSON(Object javaObject) ;

    参数介绍 : Object javaObject:java bean 对象 或者 集合;


    关键代码解析 :

    -- Java Bean 转 JSONObject : JSONObject object = (JSONObject) JSON.toJSON(student_s);

    -- Java 集合 转 JSONArray : JSONArray array = (JSONArray) JSON.toJSON(students);


    JSONOject 和 JSONArray 打印 : 这两种对象 打印本身, toString() 以及 toJSONString() 都是相同的结果, 详见下面的示例;

    Student student = new Student();
    student.age = 18;
    student.name = "张三";
    ArrayList<String> list = new ArrayList<>();
    list.add("90");
    list.add("20");
    list.add("50");
    student.score = list;
    ArrayList<Student> list2 = new ArrayList<>();
    list2.add(student);
    JSONObject object = (JSONObject )JSON.toJSON(student);
    System.out.println("object"+object.toString());
    JSONArray jsonArray = (JSONArray) JSON.toJSON(list2);
    System.out.println("jsonArray"+jsonArray.toString());
    

     打印结果:

    注意:JSONArray和JSONObject导包一定要导入的是alibaba下的包

    import com.alibaba.fastjson.JSONArray;
    import com.alibaba.fastjson.JSONObject;
    

    JSON.parseObject方法的使用


    JSONObject parseObject(String text) 方法 :

    方法定义 : public static final JSONObject parseObject(String text);

    方法作用 : 将 json 字符串类型转化为 JSONObject 对象;

    方法位置 : JSONObject com.alibaba.fastjson.JSON.parseObject(String text);

    参数介绍 : String text:json 字符串;


    <T> T parseObject(String text, Class<T> clazz) 方法 :

    方法定义 : public static final <T> T parseObject(String text, Class<T> clazz);

    方法作用 : 将 json 字符串转为指定类型的 java bean 对象;

    方法位置 : <T> T com.alibaba.fastjson.JSON.parseObject(String text, Class<T> clazz);

    参数介绍 : String text :json 字符串, Class<T> clazz :要转化的 java bean 对象类型;

    String json_student = "{'score':['90','20','50'],'age':18,'name':'张三'}";
    JSONObject object = JSON.parseObject(json_student);
    System.out.println("object:" + object);
    Student student = JSON.parseObject(json_student, Student.class);
    System.out.println("name=" + student.name + "age=" + student.age);
    

     输出结果:


    JSON.parse 方法

    Object parse(String text) 方法简介

    方法定义 : public static final Object parse(String text);

    方法作用 : 将 json 字符串转为 JSONObject 或者 JSONArray 对象;

    方法位置 : Object com.alibaba.fastjson.JSON.parse(String text);

    参数介绍 : String text :json 字符串;

    String json_student = "{'score':['90','20','50'],'age':18,'name':'张三'}";
    //将 json 字符串转为 JSONObect 对象  
    JSONObject object = (JSONObject) JSON.parse(json_student);
    //打印 JSONObject 对象  
    System.out.println(object);
    //将 json 字符串 转为 JSONArray 对象  
    ArrayList<String> json_array = new ArrayList<>();
    json_array.add(json_student);
    JSONArray array = (JSONArray) JSON.parse(String.valueOf(json_array));
    //打印 JSONArray 对象  
    System.out.println(array);
    

     打印结果输出:


    JSONObject 方法

    获取 JSONObject 中元素 : 获取 String 就调用 jsonObject.getString("key"), 获取 boolean 调用 jsonObject.getBoolean("key"), 同理还可以获取其它类型的数据;

    向 JSONObject 中添加元素 : object.put("action", "fuck");

    向 JSONObject 中添加多个元素 : 将一个 Map 集合添加到 JSONObject 中, Map 集合的键必须是 String 类型;

    移除 JSONObject 中的属性 : jsonObject.remove("key"), 参数是 键;

    获取 JSONObject 中元素个数 : jsonObject.size();

    //创建对象
    JSONObject jsonObject = new JSONObject();
    //向 JSONObject 中添加元素 
    jsonObject.put("name","张三");
    jsonObject.put("age",18);
    //获取 JSONObject 中元素
    Boolean isOpen = jsonObject.getBoolean("isOpen");
    String name = jsonObject.getString("name");
    Map<String, String> map = new HashMap<>();
    map.put("home", "American");
    map.put("school", "harvard");
    // 向 JSONObject 中添加多个元素
    jsonObject.putAll(map);
    //移除 JSONObject 中的属性
    jsonObject.remove("name") ;
    //获取 JSONObject 中元素个数size
    int size = jsonObject.size();
    
  • 相关阅读:
    【类似N^N做法的斐波那契数列】【HDU1568】 Fibonacci
    【取对数+科学计数法】【HDU1060】 N^N
    【枚举+数学】【HDU1271】整数对 难度:五颗星
    【欧拉函数】【HDU1286】 找新朋友
    【筛素数表证明】【O[n]】
    【沙茶了+筛选保存最大质因数】【HDU2136】Largest prime factor
    【gcd+数学证明】【HDU1722】 CAKE
    【贪心】【HDU3177】 搬家问题
    HDU2093 字符串2种不错的读入思路
    tf.argmax()
  • 原文地址:https://www.cnblogs.com/loaderman/p/6445964.html
Copyright © 2020-2023  润新知