json转map JavaBean(对象)、Map、JSONObject 之间的相互转换

朴灿烈づ我的快乐病毒、 2022-09-01 12:58 254阅读 0赞

json转map,map转对象……

话不多说,直接上代码

  1. import java.lang.reflect.Method;
  2. import java.text.ParseException;
  3. import java.util.HashMap;
  4. import java.util.Iterator;
  5. import java.util.Map;
  6. import org.json.JSONException;
  7. import org.json.JSONObject;
  8. /**
  9. *
  10. * 1:将JavaBean转换成Map、JSONObject
  11. * 2:将Map转换成Javabean
  12. * 3:将JSONObject转换成Map、Javabean
  13. *
  14. * @author Alexia
  15. */
  16. public class JsonHelper {
  17. /**
  18. * 将Javabean转换为Map
  19. *
  20. * @param javaBean
  21. * javaBean
  22. * @return Map对象
  23. */
  24. public static Map toMap(Object javaBean) {
  25. Map result = new HashMap();
  26. Method[] methods = javaBean.getClass().getDeclaredMethods();
  27. for (Method method : methods) {
  28. try {
  29. if (method.getName().startsWith("get")) {
  30. String field = method.getName();
  31. field = field.substring(field.indexOf("get") + 3);
  32. field = field.toLowerCase().charAt(0) + field.substring(1);
  33. Object value = method.invoke(javaBean, (Object[]) null);
  34. result.put(field, null == value ? "" : value.toString());
  35. }
  36. } catch (Exception e) {
  37. e.printStackTrace();
  38. }
  39. }
  40. return result;
  41. }
  42. /**
  43. * 将Json对象转换成Map
  44. *
  45. * @param jsonObject
  46. * json对象
  47. * @return Map对象
  48. * @throws JSONException
  49. */
  50. public static Map toMap(String jsonString) throws JSONException {
  51. Map maps = (Map)JSON.parse(jsonString);
  52. return maps;
  53. }
  54. /**
  55. * 将JavaBean转换成JSONObject(通过Map中转)
  56. *
  57. * @param bean
  58. * javaBean
  59. * @return json对象
  60. */
  61. public static JSONObject toJSON(Object bean) {
  62. return new JSONObject(toMap(bean));
  63. }
  64. /**
  65. * 将Map转换成Javabean
  66. *
  67. * @param javabean
  68. * javaBean
  69. * @param data
  70. * Map数据
  71. */
  72. public static Object toJavaBean(Object javabean, Map data) {
  73. Method[] methods = javabean.getClass().getDeclaredMethods();
  74. for (Method method : methods) {
  75. try {
  76. if (method.getName().startsWith("set")) {
  77. String field = method.getName();
  78. field = field.substring(field.indexOf("set") + 3);
  79. field = field.toLowerCase().charAt(0) + field.substring(1);
  80. method.invoke(javabean, new Object[] {
  81. data.get(field)
  82. });
  83. }
  84. } catch (Exception e) {
  85. }
  86. }
  87. return javabean;
  88. }
  89. /**
  90. * JSONObject到JavaBean
  91. *
  92. * @param bean
  93. * javaBean
  94. * @return json对象
  95. * @throws ParseException
  96. * json解析异常
  97. * @throws JSONException
  98. */
  99. public static void toJavaBean(Object javabean, String jsonString)
  100. throws ParseException, JSONException {
  101. JSONObject jsonObject = new JSONObject(jsonString);
  102. Map map = toMap(jsonObject.toString());
  103. toJavaBean(javabean, map);
  104. }
  105. }

发表评论

表情:
评论列表 (有 0 条评论,254人围观)

还没有评论,来说两句吧...

相关阅读