fastjson笔记系列(一)

本文介绍了Fastjson,阿里巴巴的开源JSON解析库,详细讲解了如何将JSON字符串转换为JSONObject,以及如何将JSON字符串映射到JavaBean实例,包括不同类型的解析方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. fastjson是什么?

fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。

参考:https://github.com/alibaba/fastjson/wiki/Quick-Start-CN

2. 基本使用

2.1 将json字符串转为json对象

String s = "{\"param1\":\"aaa\",\"param2\":\"bbb\"}";
JSONObject jsonObject = JSON.parseObject(s);
System.out.println(jsonObject.get("param1")); // aaa

2.2 将json字符串转为Javabean

String s1 = "{\"username\":\"zhang\",\"password\":\"zhang123\"}";
Person person = JSON.parseObject(s1, Person.class);
System.out.println(person);
/*
    输出:
        Person constructor
        setUsername() method
        setPassword() method
        Person{username='zhang', password='zhang123'}
*/

Person.java

package com.fastjsonvul;

import java.util.Map;
import java.util.Objects;

public class Person {
    private String username;
    private String password;

    private Map<Objects, Objects> map;

    @Override
    public String toString() {
        return "Person{" +
                "username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }

    public String getUsername() {
        System.out.println("getUsername() method");
        return username;
    }

    public void setUsername(String username) {
        System.out.println("setUsername() method");
        this.username = username;
    }

    public String getPassword() {
        System.out.println("getPassword() method");
        return password;
    }

    public void setPassword(String password) {
        System.out.println("setPassword() method");
        this.password = password;
    }

    public Person() {
        System.out.println("Person constructor");
    }


    public Person(String username, String password) {
        this.username = username;
        this.password = password;
    }
     public Map<Objects, Objects> getMap(){
         System.out.println("getMap() method");
         return this.map;
     }
}

2.3 根据传入字符串的类型去解析json字符串

String s2 = "{\"@type\":\"com.fastjsonvul.Person\",\"username\":\"zhangsan\",\"password\":\"zhangsan123\"}";
JSONObject jsonObject = JSON.parseObject(s2);
System.out.println(jsonObject);
/*
    输出:
        Person constructor
    setUsername() method
    setPassword() method
    getMap() method
    getPassword() method
    getUsername() method
    {"password":"zhangsan123","username":"zhangsan"}
*/
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值