fastjson简单使用demo,@JSONField注解属性字段上与set、get方法上。实体类toString(),实体类转json的区别;_下划线识别

一、demo代码

@JSONField注解属性字段上与set、get方法上。使用@Data注解(lombok插件安装最下方),对属性“笔名”【pseudonym】手动重写setter/getter方法

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;

@Data
public class Stu {

    private String name;
    //下划线自动转换
    private String alias_name;

    //下划线自动转换
//    @JSONField(name="pen_name")
    private String penName;

    //实体类转为json,使用注解name值
    @JSONField(name="pen_name2")
    private String penName2;

    private String pseudonym;

    //实体类转为json,使用注解name值
    @JSONField(name="pseud")
    //不使用注解为属性名{"penName":"333","name":"1111","alias_name":"222","pen_name2":"444","pseudonym":"555"}
    public String getPseudonym() {
        return pseudonym;
    }

    //json转为实体类,使用注解name值
    @JSONField(name="pseudo")
    public void setPseudonym(String pseudonym) {
        this.pseudonym = pseudonym;
    }

    public static void main(String[] args) {
        String json = "{‘name‘:‘1111‘,‘aliasName‘:‘222‘,‘pen_name‘:‘333‘,‘pen_name2‘:‘444‘,‘pseudo‘:‘555‘}";
        Stu stu = JSON.parseObject(json, Stu.class);

        System.out.println(stu);
        System.out.println(JSONObject.toJSON(stu));
    }
}

二、main方法运行结果(控制台)

Stu(name=1111, alias_name=222, penName=333, penName2=444, pseudonym=555)
{"pseud":"555","penName":"333","name":"1111","alias_name":"222","pen_name2":"444"}

Process finished with exit code 0

三、@Data备注

idea安装lombok插件。

原文地址:https://www.cnblogs.com/foolash/p/11747828.html

时间: 2024-10-07 10:54:12

fastjson简单使用demo,@JSONField注解属性字段上与set、get方法上。实体类toString(),实体类转json的区别;_下划线识别的相关文章

C# 获取属性字段上DescriptionAttribute的值

var ent = new Ent(); foreach (var item in ent.GetType().GetProperties()) { var v = (DescriptionAttribute[])item.GetCustomAttributes(typeof(DescriptionAttribute), false); var descriptionName = v[0].Description; item.SetValue(ent,descriptionName+":1&qu

fastjson的@JSONField注解

@JSONField作用:在字段和方法上1.Field:@JSONField作用在Field时,name可以定义输入key的名字,反序列化的时 值不会赋值到属性上2.作用在setter和getter方法上 /** * bean 转json 时会把bean中的name转换为project_name * */ @JSONField(name="project_name") public String getName() { return name; } /** * son 转bean 时会

Object-C 声明属性为什么用下划线,代码规范和编程风格

原文:http://blog.sina.com.cn/s/blog_7b9d64af0101923n.html 在阅读和书写关于iPhone编程的代码的时候,发现有很多这样的情况: 看到很多源代码里面,使用前面带下划线变量,然后在@synthesize 语句中 在用一个不带下划线的变量名. 这样做,到底有什么作用? 因为我常常是以这种方式来做的: *.h中申明变量 #import <UIKit/UIKit.h> @interface NewPlayerController : UIViewCo

用jackson的@JsonProperty注解属性名,会多出一个字段

遇见了这个情况,我的字段定义是xVal,yVal,用的lombok的@Data注解.然后查询到了下面这偏文章,https://bbs.csdn.net/topics/392305619,里面的回答是图片,我只是翻译一下图片而已. 以下是引用的原文:jackson2对pojo类型序列化的处理. Jackson2在初始化序列器时,对pojo类型对象会收集其属性信息,属性包括成员变量及方法,然后属性名称和处理过后的方法名称做为key保存到一个LinkedHashMap中.收集过程中会调用com.fas

Mybatis_reveiw之Mybatis官方的一个很简单的Demo

上学的时候,一个老师讲了个故事,这个故事的大意是,我们有很多种方式去削苹果,第一种方式,使用指甲刀,第二种方式,使用机床,第三种方式,使用手摇的那种削平果小工具.我们当然都能够完成这个简单的需求,但是使用指甲刀削出来的苹果一定比较坑坑洼洼,不够美观,而且可能会让人感觉到有点没啥食欲.使用机床呢?可能会造成大量的浪费,原本一个美观大方的苹果变成了只能啃几口的正方形.第三个,因为是专门为了削苹果皮而设计的,理论上是最合适用来解决削苹果这个问题的解决方案. 一个好的架构,其实要做的事情是非常简单的,除

[工作必备]spring定时器简单的demo

原文:[工作必备]spring定时器简单的demo 源代码下载地址:http://www.zuidaima.com/share/1586950010391552.htm 本月的最后一天上班季.给大家分享一个工作中经常用到的一个算得上是技术吧.我在网上找了好多方法,都是简单的描述,并没有案例.今天抽时间做出来了一个简单的demo.希望可以帮助大家. 如图,我在这里配置的定时器是每10秒执行一次. 其实很简单,重点是在配置applicationContext.xml里面的cronExpression

Mybatis 3.2.7 简单入门Demo

对最新版本 Mybatis 3.2.7 做了一个demo,做个记录 需要的基本jar: mybatis-3.2.7.jar mysql-connector-java-5.1.27.jar 首先配置xml文件 mybatis-config.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config

@JSONField注解的使用

FastJson中的注解@JSONField,一般作用在get/set方法上面,常用的使用场景有下面三个: 修改和json字符串的字段映射[name] 格式化数据[format] 过滤掉不需要序列化的字段[serialize] 一.修改字段映射使用方法: private Integer aid; // 实体类序列化为json字符串的时候,此类的aid字段,序列化为json中的testid字段 @JSONField(name="testid") public Integer getAid

JAVA注解的字段脱敏处理

有这样一个场景,系统中可以出现敏感的数据,在打印日志的时候,我们并不希望打印出现,这样,我们使用自己定义注解,来解决这个问题. 定义需要脱敏的字段规则. import java.lang.reflect.Array; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.Collection; import java.util.HashSet; import java.util.Iter