Fastjson介绍
Fastjson是一个Java语言编写的JSON处理器。
1、遵循http://json.org标准,为其官方网站收录的参考实现之一。
2、功能qiang打,支持JDK的各种类型,包括基本的JavaBean、Collection、Map、Date、Enum、泛型。
3、无依赖,不需要例外额外的jar,能够直接跑在JDK上。
4、开源,使用Apache License 2.0协议开源。http://code.alibabatech.com/wiki/display/FastJSON/Home
如果获得Fastjson?
SVN:http://code.alibabatech.com/svn/fastjson/trunk/
WIKI:http://code.alibabatech.com/wiki/display/FastJSON/Home
Issue Tracking:http://code.alibabatech.com/jira/browse/FASTJSON
如果你使用了Maven,maven repository配置如下:
<repository>
<id>opensesame</id>
<name>Alibaba OpenSource Repsoitory</name>
<url>http://code.alibabatech.com/mvn/releases/</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
pom.xml文件中加入依赖依赖:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.0.4</version>
</dependency>
如果没有使用maven,可以直接下载:
http://code.alibabatech.com/mvn/releases/com/alibaba/fastjson/1.0.4/fastjson-1.0.4.jar
http://code.alibabatech.com/mvn/releases/com/alibaba/fastjson/1.0.4/fastjson-1.0.4-sources.jar
使用介绍:
Fastjson的最主要的使用入口是com.alibaba.fastjson.JSON
import com.alibaba.fastjson.JSON;
public static final Object parse(String text); // 把JSON文本parse为JSONObject或者JSONArray
public static final JSONObject parseObject(String text); // 把JSON文本parse成JSONObject
public static final <T> T parseObject(String text, Class<T> clazz); // 把JSON文本parse为JavaBean
public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray
public static final <T> List<T> parseArray(String text, Class<T> clazz); //把JSON文本parse成JavaBean集合
public static final String toJSONString(Object object); // 将JavaBean序列化为JSON文本
public static final String toJSONString(Object object, boolean prettyFormat); // 将JavaBean序列化为带格式的JSON文本
public static final Object toJSON(Object javaObject); 将JavaBean转换为JSONObject或者JSONArray。
代码示例:
代码示例用到类User和Group:
public class User {
private Long id;
private String name;
public Long getId() { return id; }
public void setId(Long id) { this.id = id; }
public String getName() { return name; }
public void setName(String name) { this.name = name; }
}
public class Group {
private Long id;
private String name;
private List<User> users = new ArrayList<User>();
public Long getId() { return id; }
public void setId(Long id) { this.id = id; }
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public List<User> getUsers() { return users; }
public void setUsers(List<User> users) { this.users = users; }
}
Encode代码示例:
import com.alibaba.fastjson.JSON;
Group group = new Group();
group.setId(0L);
group.setName("admin");
User guestUser = new User();
guestUser.setId(2L);
guestUser.setName("guest");
User rootUser = new User();
rootUser.setId(3L);
rootUser.setName("root");
group.getUsers().add(guestUser);
group.getUsers().add(rootUser);
String jsonString = JSON.toJSONString(group);
System.out.println(jsonString);
Decode 代码示例:
Group group2 = JSON.parseObject(jsonString, Group.class);
public class testJson {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String strJson = "{\"sqls\":[{\"sql\":\"INSERT INTO T_BASE_PERSON (PERSON_ID,PERSON_NAME) VALUES (?,?)\",\"values\":\"0dc11abb-967d-11e3-afc0-000c29c3253b,张三\"},{\"sql\":\"UPDATE T_BASE_CLASS SET CLASS_NAME=? WHERE CLASS_ID=?\",\"values\":\"一年一班,538b7ee7-967d-11e3-afc0-000c29c3253b\"}]}";
JSONObject myObj = JSONObject.parseObject(strJson);
JSONArray myArray = myObj.getJSONArray("sqls");
for(int i=0;i<myArray.size();i++)
{
JSONObject o = myArray.getJSONObject(i);
System.out.println(o.get("sql"));
System.out.println(o.get("values"));
}
String strJson1 = "[{\"sql\":\"INSERT INTO T_BASE_PERSON (PERSON_ID,PERSON_NAME) VALUES (?,?)\",\"values\":\"0dc11abb-967d-11e3-afc0-000c29c3253b,张三\"},{\"sql\":\"UPDATE T_BASE_CLASS SET CLASS_NAME=? WHERE CLASS_ID=?\",\"values\":\"一年一班,538b7ee7-967d-11e3-afc0-000c29c3253b\"}]";
JSONArray myArray1 =JSONArray.parseArray(strJson1);
for(int j=0;j<myArray1.size();j++)
{
JSONObject o1 = myArray1.getJSONObject(j);
System.out.println(o1.get("sql"));
System.out.println(o1.get("values"));
}
}
}
分享到:
相关推荐
下面是一些关键的Fastjson使用方法: 1. **解析JSON字符串到Java对象** - `JSONObject.parseObject(String jsonString, Class<T> clazz)`:将JSON字符串解析为Java对象,其中`T`是你想要的类类型。 - `JSONArray....
作为开源项目,Fastjson使用Apache License 2.0协议进行开源。 Fastjson主要特点包括: 1. 高性能:Fastjson在性能测试中表现优异,适合在对性能有较高要求的场合使用。 2. 功能全面:支持丰富的数据类型转换,并...
### fastjson常用方法 在Java开发中,JSON作为一种轻量级的数据交换格式,被广泛应用于前后端数据交互、配置文件存储等场景。阿里集团推出的fastjson是目前最流行的Java JSON库之一,它不仅性能优越,而且使用起来...
接着,我们使用`JSON.parseObject()`方法将这个JSON字符串再反序列化回`Group`对象。注意,Fastjson会自动处理Java Bean中的属性映射,除非使用`@JSONField`注解来定制字段名称。 除了基本的序列化和反序列化,...
我们可以使用`Fastjson`的`toJSONString()`方法将`User`对象转换为JSON字符串: ```java User user = new User(); user.setName("John"); user.setAge(30); String jsonString = JSON.toJSONString(user); ``` ##...
5. **动态操作JSON**:Fastjson还允许动态操作JSON对象,例如通过`JSONObject.get()`和`JSONArray.get()`方法获取值,`JSONObject.put()`和`JSONArray.add()`方法设置或添加值。 以下是一些基本的使用示例: ```...
此外,避免在不安全的环境中使用`parseObject()`方法,防止恶意输入导致代码执行。 总之,Fastjson作为一款强大的JSON解析库,提供了丰富的功能和优秀的性能。在理解和掌握其基本用法的基础上,深入学习其高级特性...
在Java开发中,数据序列化和反序列化是常见的需求,用于将对象转换为...了解它们的使用方法和特点,可以帮助开发者根据项目需求做出合适的决策。在日常开发中,可以尝试使用这两个库,以提高工作效率并提升代码质量。
### Fastjson 使用详解 #### 一、概述 Fastjson 是阿里巴巴开源的一款高性能的 JSON 序列化/反序列化库,旨在提供一个简单且快速的方式来处理 JSON 数据。它支持 Java 泛型、自定义序列化类、任意复杂对象以及预先...
10. **线程安全**:Fastjson的设计允许在多线程环境中安全使用,但为了获得最佳性能,建议在单线程或短生命周期的上下文中创建并使用`JSON`实例。 Fastjson的易用性和高性能使得它成为Java开发者处理JSON数据的首选...
本文将详细介绍 `fastjson` 的基本使用方法,并通过示例代码进行说明。 #### 二、环境搭建 在使用 `fastjson` 之前,需要将其依赖添加到项目中。对于 Android 项目,可以在 build.gradle 文件中添加如下依赖: ``...
在本篇文档中,我们将探讨如何使用Spring Cache来缓存数据,并结合Fastjson配置Redis序列化,确保数据正确存储和读取。 首先,我们需要在`pom.xml`中添加必要的依赖。Spring Boot的`spring-boot-starter-cache`模块...
Fastjson是阿里巴巴开发的一款高性能的Java JSON库,它能够实现JSON和Java对象之间的相互转换,极大地简化了JSON在Java应用中的使用。Fastjson的特点在于其高效性和易用性,不仅解析速度较快,而且API设计简洁明了,...
3. **使用示例**:在测试类中,我们可以编写各种使用Fastjson的方法。例如: - 序列化:将Java对象转换为JSON字符串。 ```java User user = new User(); user.setName("张三"); user.setAge(25); String json...
在标题提到的"fastjson所用jar包"中,我们讨论的是Fastjson的两个核心jar文件,这些文件通常包含了Fastjson的所有功能,使得开发者能够在自己的项目中便捷地引入和使用Fastjson。 **Fastjson的功能** 1. **解析...
下面,我们将详细探讨Fastjson的使用方法和特性。 1. **安装与引入** 要使用Fastjson,首先需要将其引入项目。在给定的文件列表中,`fastjson-1.1.22.jar`是Fastjson的库文件,将这个jar包添加到项目的类路径中...
在这个小例子中,我们将深入探讨FastJson的使用方法,以及它如何帮助开发者在Android开发中快速处理JSON数据。 在Android应用开发中,JSON是一种常见的数据交换格式,用于在服务器和客户端之间传递数据。FastJson以...
本文将详细介绍如何在Android Studio中使用FastJSON进行JSON解析和生成。 首先,理解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于ECMAScript的一个子集,采用完全独立于语言的文本格式,...