fastJson + lombok + 屬性名命名 踩坑點


 

JavaBean屬性名要求:前兩個字母要么都大寫,要么都小寫

 

package com.jdyh.worker.project.controller;

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

import java.beans.BeanInfo;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;

// https://www.cnblogs.com/threecc/archive/2011/09/05/2167667.html     https://www.jb51.net/article/113074.htm
//lombok 與 手動生成getter的區別
public class dd3 {


    public static void main(String[] args) throws Exception {
        // java基礎之內省(Introspector)操作javabean屬性的理解(主要用於開發框架): http://blog.sina.com.cn/s/blog_e3bab1310102v7k3.html
        BeanInfo beanInfo = Introspector.getBeanInfo(Person.class);
        PropertyDescriptor[] pds = beanInfo.getPropertyDescriptors();
        for (int i = 0; i < pds.length; i++) {
            System.out.println(pds[i].getName());
        }
        Person person = new Person();
        person.setAA("1");
        person.setBb("2");
        person.setCC("3");//lombok
//        person.setcC("3");//手動生成getter
        String d2 = toJsonStr(person);
        System.out.println("---20-->" + d2);
        JSONObject d3 = toJson(d2);
        System.out.println("---21-->" + d3);
        Person d4 = jsontoBean(d3);
        System.out.println("---22-->" + d4.toString());

    }

    public static String toJsonStr(Object object) {
        return JSON.toJSONString(object);
    }

    public static JSONObject toJson(String str) {
        return JSON.parseObject(str);
    }

    public static Person jsontoBean(JSON json) {
        return JSON.toJavaObject(json, Person.class);
    }

    @Data
    static class Person {//這是一個JavaBean
        private String AA;
        private String Bb;
        private String cC;

        public String getAA() {
            return AA;
        }

        public void setAA(String aa) {
            AA = aa;
        }

        public String getBb() {//decapitalize(Bb)會得出屬性是bb,實際是Bb
            return Bb;
        }

        public void setBb(String bb) {
            Bb = bb;
        }

        public String getCC() {//decapitalize(CC)會得出屬性是CC,實際是cC
            return cC;
        }

        public void setCC(String cc) {
            cC = cc;
        }

    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM