文档章节

FastJson中@JSONField注解使用

何天棋
 何天棋
发布于 2016/12/31 14:18
字数 448
阅读 1105
收藏 0

@JSONField作用在Field时,其name不仅定义了输入key的名称,同时也定义了输出的名称。代码如下:

package com.xx.test;


import com.alibaba.fastjson.annotation.JSONField;

public class CRMWorkOrderModel {

	@JSONField(name = "work_order_id")
	private String work_order_id;

	@JSONField(name = "Name")
	private String name;

    public String getWork_order_id() {
		return work_order_id;
	}

	public void setWork_order_id(String work_order_id) {
		this.work_order_id = work_order_id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
}

 

当作用在setter方法上时,就相当于根据 name 到 json中寻找对应的值,并调用该setter对象赋值。

当作用在getter上时,在bean转换为json时,其key值为name定义的值。实例如下:

import com.alibaba.fastjson.JSONObject;  
import com.alibaba.fastjson.annotation.JSONField;  
  
public class Product {  
  
    private String productName;  
    private String desc;  
    private String price;  
      
    @JSONField(name="name")  
    public String getProductName() {  
        return productName;  
    }  
      
    @JSONField(name="NAME")  
    public void setProductName(String productName) {  
        this.productName = productName;  
    }  
      
    @JSONField(name="desc")  
    public String getDesc() {  
        return desc;  
    }  
      
    @JSONField(name="DESC")  
    public void setDesc(String desc) {  
        this.desc = desc;  
    }  
      
    @JSONField(name="price")  
    public String getPrice() {  
        return price;  
    }  
      
    @JSONField(name="PRICE")  
    public void setPrice(String price) {  
        this.price = price;  
    }  
      
    public String toString() {  
        return JSONObject.toJSONString(this);  
    }  
      
}  

 

 

import org.java.json.fastjson.bean.Product;  
import org.junit.Test;  
  
import com.alibaba.fastjson.JSONObject;  
  
/** 
 * 对fastjson中的JSON转换做一个测试 
 * @author xianglj 
 */  
public class JsonObjectTest {  
  
    public static void main(String[] args) {  
        Product product = new Product();  
        product.setProductName("产品");  
        product.setDesc("这是一个产品");  
        product.setPrice("22.3");  
          
        String jsonStr = JSONObject.toJSONString(product);  
        System.out.println("转换为json:" + JSONObject.toJSONString(product));  
          
        //jsonStr = jsonStr.toUpperCase();  
        System.out.println(jsonStr);  
          
        product = JSONObject.toJavaObject(JSONObject.parseObject(jsonStr), Product.class);  
        System.out.println(product.toString());  
    }  
      
    @Test  
    public void test() {  
        Product product = new Product();  
        product.setProductName("产品");  
        product.setDesc("这是一个产品");  
        product.setPrice("22.3");  
          
        String jsonStr = JSONObject.toJSONString(product);  
        System.out.println("转换为json:" + JSONObject.toJSONString(product));  
          
        jsonStr = jsonStr.toUpperCase();  
        System.out.println(jsonStr);  
          
        product = JSONObject.toJavaObject(JSONObject.parseObject(jsonStr), Product.class);  
        System.out.println(product.toString());  
    }  
}  

 

转换为json:{"desc":"这是一个产品","name":"产品","price":"22.3"}  
{"DESC":"这是一个产品","NAME":"产品","PRICE":"22.3"}  
{"desc":"这是一个产品","name":"产品","price":"22.3"}  

我们在转换bean时,就不需要在手工方式,为不能转换的属性进行赋值。即使以后返回数据反生变化,也能够快速的进行修改。不用修改大片代码。只需要修改注解name值就可以了

© 著作权归作者所有

上一篇: mybatis resultType
下一篇: logger 日志级别
何天棋
粉丝 1
博文 10
码字总数 2261
作品 0
宝山
私信 提问
FastJson 序列化java bean中的属性顺序问题(alibaba.fastjson)

FastJson 序列化java bean中的属性顺序问题(alibaba.fastjson) fastjson序列化一个java bean,默认是根据fieldName的字母序进行序列化的,你可以通过ordinal指定字段的顺序,这个特性需要1.1...

writeademo
2016/09/30
1K
0
fastjson @JSONField

1.作用在FIELD(成员变量上) 注意:1、若属性是私有的,必须有set*方法。否则无法反序列化。 package com.zhujie; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.an...

诗和_远方
2018/08/24
0
0
SpringBoot(九):fastjson、异常处理

1、fastjson pom.xml加入jar <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.31</version></dependency> 配置fastjson:继承WebMvcConfigurerAda......

warlockssss
2017/09/26
56
0
SpringMVC+FastJson 自定义日期转换器

对于有的时候要输出日期格式为yyyy-MM-dd,而有的时候要输出yyyy-MM-dd hh:mm:ss时怎么办? 第一种方案:纯注解式, 对日期类型的字段进行注解 第二种方案:使用fastjson的WriteDateUseDateF...

nonnetta
2016/02/05
4.9K
1
在springboot中添加jsonConverter

spring默认支持的是jackson2的json解析器.现在大部分人都习惯了fastJson的解析器.现在简单的说下如何配置json解析器 jackson2 配置如下: 可以使用@JsonFormat(shape = JsonFormat.Shape.STRI...

流光韶逝
2018/02/02
722
0

没有更多内容

加载失败,请刷新页面

加载更多

Es问题汇总

1.索引类型为Date问题 "activitytime": { "type": "date", "format": "epoch_second"} 报错:message [ElasticsearchException[Elasticsearch exception [type=mapper_parsing_......

HLee
1分钟前
0
0
项目启动 spring 莫名 爆null 空指针异常,排查

项目之前跑起来运行好好的,结果 其他相关的模块更新代码之后,项目启动报错了 2019-12-06 08:55:13 [main] ERROR o.s.boot.SpringApplication - Application startup failedjava.lang.Nu...

之渊
2分钟前
0
0
人工智能如何快速入门?这10个开源AI项目真太香!

在过去的几年中,机器学习在许多行业中开辟了新的视野,出现了一些高级用例:Facebook的面部识别,Netflix推荐的电影,PrismaAI的图像样式转换,Siri的语音识别,Google Allo的自然语言处理,...

Gaikikii
10分钟前
1
0
电脑数据加密用什么软件好?深圳源代码数据加密软件工具那个好?风奥科技

企业文件加密对于企业发展的重要性?现在科学技术的发展,信息化进程的加密快,信息化产品以及融入生活与我们的日常生活息息相关!例如个人用户在日常的网购、以及通过一定的设备来获取新闻等...

fasoft
30分钟前
4
0
redis运行一段时间之后假死

现象:redis运行一段时间之后就会出现假死的现象 假死指的是:进程在、pid在、telnet 端口是通的、redis-cli命令可以连接,但无法查询数据,查询的时候报错,如下图: 可以看到这个报错是有关...

Jack088
33分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部