的fastjson简介

时间:2025-04-25 20:17:11

文章目录

  • 简介
  • 常见API
  • api详细案例

简介

首先,介绍一下fastjson。fastjson是由alibaba开源的一套json处理器。与其他json处理器(如Gson,Jackson等)和其他的Java对象序列化反序列化方式相比,有比较明显的性能优势。
maven 添加配置:

< !-- 阿里fastjson包JSON转换–>

< dependency>
    <groupId></groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.47</version>
< /dependency>

常见API

1. 将对象序列化成json字符串

String (Object object)

效果

{
	"l_factory": [{
		"fcName": "淘宝",
		"l_worker": [{
			"age": 26,
			"name": "李飞",
			"sex": "男"
		}, {
			"age": 0
		}, {
			"age": 0
		}, {
			"age": 0
		}]
	}, {
		"fcName": "拼多多",
		"l_worker": []
	}],
	"pjName": "接口自动化",
	"waibao": true
}

2. 将json字符串反序列化成对象 Project

(String text, Class clazz)

 ("parseObject 将json字符串反序列化成对象------" + "waibao="+ (json, "waibao", ));

效果

 waibao=true

3. 将json字符串反序列化成JSON对象 JSONObject

(String text)

[{
	"l_worker": [{
		"sex": "男",
		"name": "张三",
		"age": 39
	}, {
		"sex": "男",
		"name": "李四",
		"age": 24
	}],
	"fcName": "淘宝"
}, {
	"l_worker": [{
		"sex": "女",
		"name": "王香",
		"age": 26
	}, {
		"sex": "男",
		"name": "李飞",
		"age": 26
	}],
	"fcName": "拼多多"
}]

4. 根据key 得到json中的json数组 JSONArray

(String key)

[{
	"sex": "男",
	"name": "张三",
	"age": 39
}, {
	"sex": "男",
	"name": "李四",
	"age": 24
}]
[{
	"sex": "男",
	"name": "张三",
	"age": 39
}, {
	"sex": "男",
	"name": "李四",
	"age": 24
}]

5. 根据下标拿到json数组的json对象 JSONObject

(int index)

效果

{
	"sex": "男",
	"name": "张三",
	"age": 39
}

6.根据key拿到json的字符串值 String

(String key)

api详细案例

Project

package ;

import ;

public class Project {
    String pjName;
    boolean waibao;
    public boolean isWaibao() {
        return waibao;
    }
    public void setWaibao(boolean waibao) {
         = waibao;
    }
    List<Factory> l_factory;
    //List<Worker> worker;
    public String getPjName() {
        return pjName;
    }
    public void setPjName(String pjName) {
         = pjName;
    }
    public List<Factory> getL_factory() {
        return l_factory;
    }
    public void setL_factory(List<Factory> l_factory) {
        this.l_factory = l_factory;
    }

    
}

Factory

package ;

import ;

public class Factory {

    String fcName;
    List<Worker> l_worker;
    public String getFcName() {
        return fcName;
    }
    public void setFcName(String fcName) {
         = fcName;
    }
    public List<Worker> getL_worker() {
        return l_worker;
    }
    public void setL_worker(List<Worker> l_worker) {
        this.l_worker = l_worker;
    }
    
}

Worker

package ;

public class Worker {

    String name;
    String sex;
    int age;
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
         = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
         = name;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
         = sex;
    }
    
}

TestFastJson

package ;

import ;
import ;

import ;
import ;
import ;

public class TestFastJson {

	public static void main(String[] args) {
		TestFastJson testFastJson = new TestFastJson();
		Project project = ();
		String json = (project);
		// ("json="+json);

		// {"l_factory":[{"fcName":"淘宝","l_worker":[{"age":26,"name":"李飞","sex":"男"},{"age":0},{"age":0},{"age":0}]},{"fcName":"拼多多","l_worker":[]}],"pjName":"接口自动化","waibao":true}

		// ("parseObject 将json字符串反序列化成对象------" + "waibao="
		// + (json, "waibao", ));
		
		// waibao=true
		
		JSONArray array = (JSONArray) (json, "l_factory", );
		// ("array=" + ());
		
		// array=[{"l_worker":[{"sex":"男","name":"张三","age":39},{"sex":"男","name":"李四","age":24}],"fcName":"淘宝"},{"l_worker":[{"sex":"女","name":"王香","age":26},{"sex":"男","name":"李飞","age":26}],"fcName":"拼多多"}]

		// String jsonArr = (array, 0, "fcName");
		// ("fcname:" + jsonArr);
		
		// fcname:淘宝
		
		JSONArray array2 = (array, 0, "l_worker");
		// ("array2=" + ());
		
		// array2=[{"sex":"男","name":"张三","age":39},{"sex":"男","name":"李四","age":24}]
		
		String json2 = (array2, 0);
		// ("json2="+json2);
		
		// {"sex":"男","name":"张三","age":39}
		
		// ("name"+(json, key, clazz));

		/*
		 * 以下输出 name=张三 sex=男 age=39 jsonArr2=男
		 * 
		 */
		("name=" + (json2, "name", ));
		("sex=" + (json2, "sex", ));
		("age=" + (json2, "age", ));

		String jsonArr2 = (array2, 0, "sex");
		("jsonArr2=" + jsonArr2);

		/*
		 * 接口自动化 淘宝 张三
		 * 
		 */
		((json));
		((json, "l_factory"));
		((json, "l_factory", "l_worker"));

	}

	public static void main1(String args[]) {
		TestFastJson tfj = new TestFastJson();
		Project prj = ();
		String json = (prj);
		("序列化后修改pjname");
		(());// 序列化后修改pjname
		Project po = (json, );
		(());// 接口自动化
	}

	public void tt(Class clazz) {
		(());
		if (().equals("String")) {
			("stringllala");
		}
	}

	/**
	 * 将对象转化为json
	 * 
	 * @param project
	 * @return
	 */
	private String getJsonString(Object object) {
		// TODO Auto-generated method stub
		String json = (object);
		return json;
	}

	/**
	 * 初始化
	 * 
	 * @return
	 */
	private Project init() {
		Project project = new Project();
		Factory f1 = new Factory();
		Factory f2 = new Factory();
		Worker wk1 = new Worker();
		("张三");
		(39);
		("男");

		Worker wk2 = new Worker();
		("李四");
		(24);
		("男");

		Worker wk3 = new Worker();
		("王香");
		(26);
		("女");

		Worker wk4 = new Worker();
		("李飞");
		(26);
		("男");

		List<Worker> workers1 = new ArrayList<>();
		(wk1);
		(wk2);

		List<Worker> workers2 = new ArrayList<>();
		(wk3);
		(wk4);

		("淘宝");
		f1.setL_worker(workers1);

		("拼多多");
		f2.setL_worker(workers2);

		List<Factory> factorys = new ArrayList<Factory>();
		(f1);
		(f2);

		("接口自动化");
		(true);
		project.setL_factory(factorys);
		return project;
	}

	/**
	 * 根据key得到json的value
	 * 
	 */
	public String getJsonValue(String json) {
		JSONObject jsonObject = (json);
		String value = ("pjName");
		return value;
	}

	/**
	 * 根据对象的类型,自动识别获取该对象的值
	 */
	public Object getJsonValueObj(String json, String key, Class clazz) {
		JSONObject jo = (json);
		if (().equals("String")) {
			String value = (key);
			return value;
		} else if (().equals("Integer")) {
			Integer value = (key);
			return value;
		} else if (().equals("Boolean")) {
			Boolean value = (key);
			return value;
		} else if (().equals("JSONArray")) {
			JSONArray array = (key);
			return array;
		} else {
			return "error, 暂不支持的类型:" + ();
		}

	}

	/**
	 * 根据key得到json的集合
	 * 
	 */
	public JSONArray getJsonArray(String json, String key) {
		JSONObject jo = (json);

		JSONArray array = (key);
		return array;

	}

	public String getJsonValue(String json, String key) {
		JSONObject jo = (json);
		JSONArray array = (key);
		JSONObject jo_fc = (0);
		String value = jo_fc.getString("fcName");

		return value;

	}

	public String getJsonValue(String json, String key, String keyW) {
		JSONObject jo = (json);
		JSONArray array = (key);
		JSONObject jo_fc = (0);
		JSONArray arrayW = jo_fc.getJSONArray(keyW);
		JSONObject jo_wk = (0);
		String value = jo_wk.getString("name");
		int age = jo_wk.getIntValue("age");
		return value;

	}

	/**
	 * 根据下标得到json数组的值
	 * 
	 * @return
	 */
	public String getJsonArrayValue(JSONArray array, int index) {
		JSONObject jo_fc = (index);
		String json = jo_fc.toJSONString();

		return json;

	}

	/**
	 * 根据下标得到j'son数组的值,再根据key得到该值的value,该值类型是String
	 * 
	 * @param array
	 * @param index
	 * @param key
	 * @return
	 */
	public String getJsonArrayValue(JSONArray array, int index, String key) {
		JSONObject jo_fc = (index);
		String value = jo_fc.getString(key);

		return value;

	}

	/**
	 * 根据下标得到json数组的值,再根据key得到该值的value,该值类型是string
	 * 
	 * @param array
	 * @return
	 */
	public JSONArray getJsonArrayValueIsArray(JSONArray array, int index, String key) {

		JSONObject jo_fc = (index);
		JSONArray arrayNew = jo_fc.getJSONArray(key);
		return arrayNew;

	}
}