FastJson的常用操作

FastJson的常用操作

2017-06-05

常用操作包括以下内容:

  1. 对象与(JsonObject或JsonArray)与String的互换
  2. String转换为(JsonObject或JsonArray)如何保持顺序
  3. Eval的使用
  4. 值为null的(JsonObject或JsonArray)转换为String时如何保存

代码:

package Demo.Sample1;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONPath;
import com.alibaba.fastjson.parser.Feature;
import com.alibaba.fastjson.serializer.SerializerFeature;

public class Sample {

    public static void main(String[] args) {
        
        Group group = GenerateGroup();
        String ss="{\"id\":1.1,\"name\":\"admin\",\"users\":[{\"id\":2.2,\"name\":\"guest\"},{\"id\":3.3,\"name\":\"root\"}]}";        
        Group groupWithNull=GenerateGroupWithNull();
        
        BasicObjectToStringCompare();
        JsonObjectToStringCompare(ss);
        NJsonObjectToStringCompare(group);
        JsonStringSequence(group, ss);        
        JsonEval(ss,"$.users");
        DealWithNullToStringString(groupWithNull);        
    }
    
    public static void BasicObjectToStringCompare()
    {
        System.out.println("---------- 基元类型 toString() toJSONString() 比较: ----------");
        System.out.println("ZifuChuan");
        System.out.println(JSON.toJSONString("ZifuChuan"));
        System.out.println(true);
        System.out.println(JSON.toJSONString(true));
        System.out.println(1.1);
        System.out.println(JSON.toJSONString(1.1));
    }
    
    public static String NJsonObjectToStringCompare(Group group) {
        String jsonString = JSON.toJSONString(group);
        System.out.println("---------- 非JsonObject toString() toJSONString() 比较: ----------");
        System.out.println(group.toString());
        System.out.println(JSON.toJSONString(group));
        return jsonString;
    }
    
    public static String JsonObjectToStringCompare(String ss) {
        Object o=JSON.parse(ss,Feature.OrderedField);
        System.out.println("---------- JsonObject toString() toJSONString() 比较: ----------");
        System.out.println(o.toString());
        System.out.println(JSON.toJSONString(o));
        return ss;
    }

    

    public static void JsonStringSequence(Group group, String jsonString) {
        System.out.println("---------- 是否有序: ----------");
        Object o=JSON.parse(jsonString);
        System.out.println(o.toString());;
        
        Object o1=JSON.parse(jsonString,Feature.OrderedField);
        System.out.println(o1.toString());
        
        Object o2 = JSON.toJSON(group);
        System.out.println(o2.toString());
    }
    
    public static void JsonEval(String ss,String jsonPath) {
        System.out.println("---------- Json Eval: ----------");        
        Object o3=JSONPath.eval(JSON.parse(ss,Feature.OrderedField),jsonPath);
        System.out.println(o3.toString());
    }

    public static void DealWithNullToStringString(Group groupWithNull) {
        System.out.println("---------- JsonObject with null emlement: ----------");
        System.out.println(JSON.toJSONString(groupWithNull));
        System.out.println(JSON.toJSONString(groupWithNull,SerializerFeature.WriteMapNullValue));
    }
    
    private static Group GenerateGroup() {
        Group group = new Group();
        group.setId(1.1);
        group.setName("admin");

        User guestUser = new User();
        guestUser.setId(2.2);
        guestUser.setName("guest");

        User rootUser = new User();
        rootUser.setId(3.3);
        rootUser.setName("root");

        group.addUser(guestUser);
        group.addUser(rootUser);
        return group;
    }
    
    private static Group GenerateGroupWithNull() {
        Group group = new Group();
        group.setId(1.1);
        group.setName("");

        User guestUser1 = new User();
        guestUser1.setId(null);
        guestUser1.setName("guest");

        User guestUser2 = new User();
        guestUser2.setId(3.3);
        
        User guestUser3 = new User();        

        group.addUser(guestUser1);
        group.addUser(guestUser2);
        group.addUser(guestUser3);
        return group;
    }
}
View Code

结果:

---------- 基元类型 toString() toJSONString() 比较: ----------
ZifuChuan
"ZifuChuan"
true
true
1.1
1.1
---------- JsonObject toString() toJSONString() 比较: ----------
{"id":1.1,"name":"admin","users":[{"id":2.2,"name":"guest"},{"id":3.3,"name":"root"}]}
{"id":1.1,"name":"admin","users":[{"id":2.2,"name":"guest"},{"id":3.3,"name":"root"}]}
---------- 非JsonObject toString() toJSONString() 比较: ----------
Demo.Sample1.Group@23ab930d
{"id":1.1,"name":"admin","users":[{"id":2.2,"name":"guest"},{"id":3.3,"name":"root"}]}
---------- 是否有序: ----------
{"name":"admin","id":1.1,"users":[{"name":"guest","id":2.2},{"name":"root","id":3.3}]}
{"id":1.1,"name":"admin","users":[{"id":2.2,"name":"guest"},{"id":3.3,"name":"root"}]}
{"name":"admin","id":1.1,"users":[{"name":"guest","id":2.2},{"name":"root","id":3.3}]}
---------- Json Eval: ----------
[{"id":2.2,"name":"guest"},{"id":3.3,"name":"root"}]
---------- JsonObject with null emlement: ----------
{"id":1.1,"name":"","users":[{"name":"guest"},{"id":3.3},{}]}
{"id":1.1,"name":"","users":[{"id":null,"name":"guest"},{"id":3.3,"name":null},{"id":null,"name":null}]}
View Code

参考:

[1] Introducing JSON

[2] FastJson 教程

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: fastjson 是一款基于 Java 的高性能 JSON 解析库,它可以将 JSON 字符串转换为 Java 对象或将 Java 对象转换为 JSON 字符串。如果你需要在你的 Java 项目中使用 fastjson,你需要在项目的构建文件中添加 fastjson 的依赖。 如果你使用 Maven 管理项目,可以在 pom.xml 文件中添加以下依赖: ```xml <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.62</version> </dependency> ``` 如果你使用 Gradle 管理项目,可以在 build.gradle 文件中添加以下依赖: ```groovy implementation 'com.alibaba:fastjson:1.2.62' ``` 请注意,上述示例中的版本号可能已过时,你需要根据实际情况选择最新版本。 ### 回答2: fastjson是一个Java语言编写的高性能JSON处理器,常用于进行JSON数据的序列化和反序列化操作。它提供了简单易用的API,使得开发者能够快速地将Java对象转换为JSON格式的字符串,并且能够将JSON格式的字符串转换为Java对象。 fastjson具有较高的处理速度和较低的内存占用,相比其他JSON处理库,它的性能更优。它在处理大量数据时能够更加高效地完成任务,提升了系统的整体性能。此外,fastjson还具有很好的兼容性,能够与各种Java应用程序进行良好的集成。 在使用fastjson时,我们需要将fastjson相关的依赖项添加到项目中。首先需要在项目的构建配置文件(如pom.xml)中添加fastjson的依赖项,指定所需的版本号。例如: ```xml <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.70</version> </dependency> ``` 在完成依赖项的添加后,我们就可以在代码中使用fastjson提供的API进行JSON数据的处理操作。通常可以通过以下步骤完成JSON数据的序列化和反序列化操作: 1. 将Java对象转换为JSON字符串:使用fastjson提供的`toJSONString`方法将Java对象转换为JSON格式的字符串。 2. 将JSON字符串转换为Java对象:使用fastjson提供的`parseObject`方法将JSON格式的字符串转换为Java对象。 除了基本的序列化和反序列化操作fastjson还提供了其他一些常用的功能,如JSON数据的格式化输出、对JSON对象的操作(如增加、删除、修改属性等)、将JSON数据转换为List、Map等集合类型等。 总之,fastjson作为一个高性能的JSON处理器,依赖项的添加是使用fastjson的前提,能够帮助我们更方便地进行JSON数据的处理操作,提升系统的性能。 ### 回答3: fastjson是一个用于Java语言的高效的JSON处理工具,它具有快速、简洁、安全的特点。使用fastjson可以方便地进行JSON和Java对象之间的转换。 首先,fastjson是一个轻量级的JSON库,它具有出色的解析和序列化性能。相比于其他JSON处理工具,fastjson在处理大数据量的情况下表现更好,能够更快速地完成JSON数据的解析和生成。 其次,fastjson提供了简洁易用的API,使得我们能够快速地进行JSON和Java对象之间的相互转换。它支持将Java对象转换为JSON字符串,也支持将JSON字符串转换为Java对象,非常方便实用。同时,fastjson还支持自定义的序列化和反序列化方式,可以满足特定的需求。 此外,fastjson还具有较高的安全性。它采用了黑名单和白名单的机制,可以对输入的JSON数据进行有效的过滤,以防止安全漏洞的产生。这种机制能够有效地防止一些恶意攻击,保障系统的安全性。 总结来说,fastjson是一款优秀的JSON处理工具,它快速、简洁、安全,适用于各种场景下的JSON处理需求。无论是在处理大数据量的情况下,还是在保障系统安全性的需求下,fastjson都是一个值得信赖的选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值