Java中的Bean是一種常見的Java類,它通常包含一些私有變量和對應(yīng)的getter和setter方法。在實(shí)際開發(fā)中,我們通常需要把Bean實(shí)例轉(zhuǎn)換成JSON格式的字符串,來進(jìn)行跨平臺傳輸或存儲。
// 定義一個Bean public class Person { private String name; private int age; // 省略getter和setter方法 } // 使用Jackson庫將Bean轉(zhuǎn)換成JSON字符串 ObjectMapper mapper = new ObjectMapper(); Person person = new Person(); person.setName("Tom"); person.setAge(18); String json = mapper.writeValueAsString(person); System.out.println(json); // 輸出結(jié)果:{"name":"Tom","age":18}
上述代碼使用了Jackson庫,調(diào)用了writeValueAsString方法將Person實(shí)例轉(zhuǎn)換成JSON字符串,其結(jié)果為{"name":"Tom","age":18}。
除此之外,我們還可以使用反射機(jī)制根據(jù)方法名獲取指定屬性的值:
// 獲取Person實(shí)例的屬性值 Person person = new Person(); person.setName("Tom"); person.setAge(18); String value = getValueByKey(person, "name"); System.out.println(value); // 輸出結(jié)果:Tom // 通過反射獲取屬性值的方法 private static String getValueByKey(Object object, String key) { String methodName = "get" + key.substring(0, 1).toUpperCase() + key.substring(1); try { Method method = object.getClass().getMethod(methodName); Object obj = method.invoke(object); return obj.toString(); } catch (Exception e) { e.printStackTrace(); return null; } }
上述代碼通過反射獲取指定屬性的getter方法,并利用invoke方法執(zhí)行該方法,獲取屬性值并返回。