当前位置:   article > 正文

FastJson中@JSONField注解_fastjson实现国际化

fastjson实现国际化

最近做项目,需要json格式在服务器之间进行数据传输。但是发现 json 格式数据字段和 java 实体中的变量不对应,需要在后台做二次处理,将数据处理成实体中定义的格式,说白了就是实体类和map数据之间的转换!!!

引入 alibaba 的 fastjson 包

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.56</version>
</dependency>
  • 1
  • 2
  • 3
  • 4
  • 5

定义实体类UserHaveJsonField (JSONField注解)

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

@Data
public class UserHasJsonField {
    @JSONField(name = "USER_NAME")
    private String name;

    @JSONField(name = "USER_EMAIL")
    private String email;

    @JSONField(name = "DESCRIBE")
    private String describe;

    @JSONField(name = "PASS_WORD")
    private String pwd;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

定义实体类UserNotHaveJsonField

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

@Data
public class UserHasJsonField {
    @JSONField(name = "USER_NAME")
    private String name;

    @JSONField(name = "USER_EMAIL")
    private String email;

    private String describe;

    private String pwd;

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

测试代码

import com.alibaba.fastjson.JSONObject;

import java.util.HashMap;

/**
 * 测试FastJson中@JSONField注解
 * @author YC
 */
public class TestJsonFiled {

    public static void main(String[] args) {
        HashMap<String, String> map = new HashMap<>();
        map.put("USER_NAME","测试");
        map.put("USER_EMAIL","测试123");
        map.put("DESCRIBE","测试456");
        map.put("PASS_WORD","测试789");
        //模拟外部传入的json数据,和实体类的字段并不对应
        String jsonString = JSONObject.toJSONString(map);

        //将json数据转为实体类
        User user1 = JSONObject.toJavaObject(JSONObject.parseObject(jsonString), UserHasJsonField.class);
        System.out.println("实体类数据1");
        System.out.println(user1.toString());

        //将实体类转为json数据
        String jsonStr1 = JSONObject.toJSONString(user)
        System.out.println("json数据1");
        System.out.println(jsonStr1);

         //将json数据转为实体类
        User user2 = JSONObject.toJavaObject(JSONObject.parseObject(jsonString), UserNotHasJsonField.class);
        System.out.println("实体类数据2");
        System.out.println(user2.toString());

        //将实体类转为json数据
        String jsonStr2 = JSONObject.toJSONString(user)
        System.out.println("json数据1");
        System.out.println(jsonStr2);
    }
}

运行结果
实体类数据1
User(name=测试, email=测试123, describe=测试456, pwd=测试789)
json数据1
{"DESCRIBE":"测试456","PASS_WORD":"测试789","USER_EMAIL":"测试123","USER_NAME":"测试"}

实体类数据2
User(name=测试, email=测试123, describe=测试456, pwd=null)
json数据2
{"USER_EMAIL":"测试123","USER_NAME":"测试","describe":"测试456"}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51

转载于:https://www.ycblog.top/article?articleId=155&pageNum=1

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/982477
推荐阅读
相关标签
  

闽ICP备14008679号