Fastjson简单使用方法

一、简单数据的序列化

pubic class UserInfo implements Serializable{
 private String name;
 private int age;
 public void setName(String name){
  this.name=name;
 }
 public String getName(){
  return name;
 }
 
 public void setAge(int age){
  this.age=age;
 }
 public int getAge(){
  return age;
 }
} 

public class TestOne{
 
 public static void main(String[] args){
  UserInfo info=new UserInfo();
  info.setName("zhangsan");
  info.setAge(24);
  //将对象转换为JSON字符串
 String strJson=JSON.toJSONString(info);
  System.out.println("JSON="+strJson);
 }

}

说明:

  1. 关键部分就是上述部分的JSON.toJSONString();
  2. JSON序列化,默认序列化出的JSON字符串中键值对是使用双引号,如果需要单引号的JSON字符串,[eg:String jsonString = JSON.toJSONString(map,   SerializerFeature.UseSingleQuotes);] fastjson序列化时可以选择的SerializerFeature有十几个属性,你可以按照自己的需要去选择使用。  

二、反序列化

public void test3(){

 String json="{\"name\":\"chenggang\",\"age\":24}";
 //反序列化
 UserInfo userInfo=JSON.parseObject(json,UserInfo.class);
 System.out.println("name:"+userInfo.getName()+", age:"+userInfo.getAge());
 
}
/**泛型的反序列化*/
public static void test4(){
  String json="{\"user\":{\"name\":\"zhangsan\",\"age\":25}}";
  Map<String, UserInfoBean> map = JSON.parseObject(json, new TypeReference<Map<String, UserInfoBean>>(){});
  System.out.println(map.get("user"));
 }

三、日期格式化

public void test5(){

  Date date=new Date();  
  //输出毫秒值
  System.out.println(JSON.toJSONString(date));
  //默认格式为yyyy-MM-dd HH:mm:ss  
  System.out.println(JSON.toJSONString(date, SerializerFeature.WriteDateUseDateFormat));
  //根据自定义格式输出日期 
  System.out.println(JSON.toJSONStringWithDateFormat(date, "yyyy-MM-dd", SerializerFeature.WriteDateUseDateFormat));

}

说明:

阿里巴巴提供了很多SerializerFeature.XXX 这些都很符合中国人的习惯。比起Jackson各有优劣!

四、基本常用API

 Fastjson API入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在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(和上面方法的区别是返回值是不一样的)

 

JackSon下载:http://repo1.maven.org/maven2/com/alibaba/fastjson/ 与   https://yunpan.cn/cu2iEKCZjXfak  访问密码 8291

转载于:https://my.oschina.net/u/2500703/blog/698769

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Fastjson是一个Java语言编写的高性能JSON处理库,可以将Java对象与JSON数据进行相互转换。下面是一个简单的示例代码,展示了如何使用Fastjson进行JSON的序列化和反序列化: 1. 添加Fastjson的依赖 在Maven项目,可以在pom.xml文件添加以下依赖: ```xml <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.76</version> </dependency> ``` 2. JSON序列化 ```java import com.alibaba.fastjson.JSON; public class FastjsonSerializer { public static void main(String[] args) { // 创建一个Java对象 User user = new User("John", 25); // 将Java对象序列化为JSON字符串 String jsonString = JSON.toJSONString(user); System.out.println(jsonString); } } class User { private String name; private int age; public User(String name, int age) { this.name = name; this.age = age; } // 省略getter和setter方法 } ``` 3. JSON反序列化 ```java import com.alibaba.fastjson.JSON; public class FastjsonDeserializer { public static void main(String[] args) { // JSON字符串 String jsonString = "{\"name\":\"John\",\"age\":25}"; // 将JSON字符串反序列化为Java对象 User user = JSON.parseObject(jsonString, User.class); // 使用反序列化后的Java对象 System.out.println(user.getName()); System.out.println(user.getAge()); } } class User { private String name; private int age; // 省略构造方法和getter、setter方法 } ``` 以上代码示例了Fastjson的基本用法,你可以根据自己的需求进行更复杂的操作。请注意,在实际使用,要确保导入了Fastjson的相关类或包,并且使用正确的版本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值