阿里巴巴FastJson包的使用心得

如果你不相信努力和时光,那么成果就会是第一个选择辜负你的。不要去否定你自己的过去,也不要用你的过去牵扯你现在的努力和对未来的展望。不是因为拥有希望你才去努力,而是去努力了,你才有可能看到希望的光芒。阿里巴巴FastJson包的使用心得,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

1.FastJson简介

  • Fastjson 是一个 Java 库,可以将 Java 对象转换为 JSON 格式,当然它也可以将 JSON 字符串转换为 Java 对象。
  • Fastjson 可以操作任何 Java 对象,即使是一些预先存在的没有源码的对象。

2.FastJson特性

  • 提供了 toJSONString() 和 parseObject() 方法来将 Java 对象与 JSON 相互转换。调用toJSONString方 法即可将对象转换成 JSON 字符串,parseObject 方法则反过来将 JSON
    字符串转换成对象。
  • 允许转换预先存在的无法修改的对象(只有class、无源代码)。
  • Java泛型的广泛支持。
  • 允许对象的自定义表示、允许自定义序列化类。
  • 支持任意复杂对象(具有深厚的继承层次和广泛使用的泛型类型)。

3.引入FastJson

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

4.FastJson中的一些对象

(1)JSONObject

JSONObject相当于Map<String,Object>,例如:

		String jsonText = "{\n" +
                "\t\"field1\":\"1\",\n" +
                "\t\"field2\":\"2\"\n" +
                "}";
        JSONObject jsonObject = JSONObject.parseObject(jsonText);
        System.out.println(jsonObject.get("field1"));

输出结果:
在这里插入图片描述

(2)JSONArray

JSONArray 相当于 List < Object >,例如:

String jsonText = "[{\"field1\":\"1\",\"field2\":\"2\"},{\"field1\":\"3\",\"field2\":\"3\"}]";
JSONArray jsonArray = JSONObject.parseArray(jsonText);
for (Object o : jsonArray) {
    System.out.println(o);
}

输出结果:
在这里插入图片描述

(3)SerializeWriter

SerializeWriter 相当于 StringBuffer,例如:

		SerializeWriter serializeWriter = new SerializeWriter();
        serializeWriter.append("[");
        serializeWriter.append("{");
        serializeWriter.append("'field1':'1','field2':2");
        serializeWriter.append("}");
        serializeWriter.append("]");
        String jsonText = serializeWriter.toString();
        System.out.println(jsonText);

输出结果:
在这里插入图片描述

4.FastJson中的一些操作

创建一个内部类用来测试

static class TestObject{
        private String field1;
        private String field2;

        public String getField1() {
            return field1;
        }

        public void setField1(String field1) {
            this.field1 = field1;
        }

        public String getField2() {
            return field2;
        }

        public void setField2(String field2) {
            this.field2 = field2;
        }

        public TestObject() {
        }

        public TestObject(String field1, String field2) {
            this.field1 = field1;
            this.field2 = field2;
        }

        @Override
        public String toString() {
            return "TestObject{" +
                    "field1='" + field1 + '\'' +
                    ", field2='" + field2 + '\'' +
                    '}';
        }
}

(1) 将JavaBean序列化为格式化后的JSON文本

TestObject testObject = new TestObject("1","2");
String jsonString = JSONObject.toJSONString(testObject, true);
System.out.println(jsonString);

输出结果:
在这里插入图片描述

(2) 将对象转为非格式化的JSON文本

List<TestObject> list = Arrays.asList(new TestObject("1", "2"), new TestObject("3", "3"));
String jsonString = JSONObject.toJSONString(list, false);
System.out.println(jsonString);

输出结果:
在这里插入图片描述

(3) JSON转JavaBean

String jsonText = "{\n" +
                "\t\"field1\":\"1\",\n" +
                "\t\"field2\":\"2\"\n" +
                "}";
TestObject testObject = JSONObject.parseObject(jsonText, TestObject.class);
System.out.println(testObject);

输出结果:
在这里插入图片描述

(4)从json中获取属性

String jsonText = "{\n" +
        "\t\"field1\":\"1\",\n" +
        "\t\"field2\":\"2\"\n" +
        "}";
JSONObject jsonObject = JSONObject.parseObject(jsonText);
String field1 = String.valueOf(jsonObject.get("field1"));
System.out.println(field1);

输出结果:
在这里插入图片描述

(5)json转换为List

String jsonText = "[{\"field1\":\"1\",\"field2\":\"2\"},{\"field1\":\"3\",\"field2\":\"3\"}]";
 List<TestObject> arrayLists = JSONObject.parseArray(jsonText, TestObject.class);
 for (TestObject testObject : arrayLists) {
     System.out.println(testObject);
 }

输出结果:
在这里插入图片描述

(6)json转Map

String jsonText = "{\n" +
                "\t\"fieldName1\":\"1\",\n" +
                "\t\"fieldName2\":\"2\"\n" +
                "}";
Map<String,Object> map = JSONObject.parseObject(jsonText, HashMap.class);
System.out.println(map);

输出结果:
在这里插入图片描述

(7)json转Set

String jsonText = "[1,2,3,1]";
Set<String> set = JSONObject.parseObject(jsonText, HashSet.class);
System.out.println(set);

输出结果:
在这里插入图片描述

(8)去除json对象中某个属性

String jsonText = "{\n" +
                "\t\"fieldName1\":\"1\",\n" +
                "\t\"fieldName2\":\"2\"\n" +
                "}";
JSONObject jsonObject = JSONObject.parseObject(jsonText);
Set<String> keys = jsonObject.keySet();
keys.remove("fieldName1");
System.out.println(jsonObject);

输出结果:
在这里插入图片描述

(9)向JSON对象中添加属性

String jsonText = "{\n" +
                "\t\"fieldName1\":\"1\",\n" +
                "\t\"fieldName2\":\"2\"\n" +
                "}";
JSONObject jsonObject = JSONObject.parseObject(jsonText);
jsonObject.put("fieldName3","3");
System.out.println(jsonObject);

输出结果:
在这里插入图片描述

(10)修改Json对象中的属性

String jsonText = "{\n" +
                "\t\"fieldName1\":\"1\",\n" +
                "\t\"fieldName2\":\"2\"\n" +
                "}";
JSONObject jsonObject = JSONObject.parseObject(jsonText);
jsonObject.put("fieldName2","22");
System.out.println(jsonObject);

输出结果:
在这里插入图片描述

(11)判断JSON对象中是否存在某个属性

String jsonText = "{\n" +
                "\t\"fieldName1\":\"1\",\n" +
                "\t\"fieldName2\":\"2\"\n" +
                "}";
JSONObject jsonObject = JSONObject.parseObject(jsonText);
boolean result = jsonObject.containsKey("fieldName1");
System.out.println(result);

输出结果:
在这里插入图片描述

(12) Json中日期格式的处理

Date date = new Date();
String jsonStringWithDateFormat = JSON.toJSONStringWithDateFormat(date, "yyyy-MM-dd HH:mm:ss");
System.out.println(jsonStringWithDateFormat);

输出结果:
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/204338.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!