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; } } }