{"id":333,"date":"2023-02-25T06:46:04","date_gmt":"2023-02-24T22:46:04","guid":{"rendered":"https:\/\/www.appblog.cn\/?p=333"},"modified":"2023-04-30T14:50:27","modified_gmt":"2023-04-30T06:50:27","slug":"beanutils-implement-conversion-between-map-and-bean","status":"publish","type":"post","link":"https:\/\/www.appblog.cn\/index.php\/2023\/02\/25\/beanutils-implement-conversion-between-map-and-bean\/","title":{"rendered":"BeanUtils \u5b9e\u73b0 Map \u4e0e Bean \u8fdb\u884c\u76f8\u4e92\u8f6c\u6362"},"content":{"rendered":"<h2>\u57fa\u672c\u4f7f\u7528<\/h2>\n<h3>Map -&gt; Bean<\/h3>\n<pre><code class=\"language-java\">BeanUtils.populate(Object bean, Map&lt;String, ? extends Object&gt; properties);<\/code><\/pre>\n<p><!-- more --><\/p>\n<h3>Bean -&gt; Map<\/h3>\n<pre><code class=\"language-java\">BeanMap testMap = new BeanMap(Object bean);<\/code><\/pre>\n<p>\u9700\u8981\u6dfb\u52a0\u7684 Maven \u4f9d\u8d56<\/p>\n<pre><code class=\"language-xml\">&lt;!-- https:\/\/mvnrepository.com\/artifact\/commons-beanutils\/commons-beanutils --&gt;\n&lt;dependency&gt;\n    &lt;groupId&gt;commons-beanutils&lt;\/groupId&gt;\n    &lt;artifactId&gt;commons-beanutils&lt;\/artifactId&gt;\n    &lt;version&gt;1.9.3&lt;\/version&gt;\n&lt;\/dependency&gt;<\/code><\/pre>\n<h2>\u6848\u4f8b<\/h2>\n<pre><code class=\"language-java\">public class MapBeanConvert {\n\n    public static void main(String[] args) throws Exception {\n        User user = new User();\n        Map&lt;String, Object&gt; map = new HashMap&lt;&gt;();\n        map.put(&quot;name&quot;, &quot;Joe.Ye&quot;);\n        map.put(&quot;home&quot;, &quot;http:\/\/www.appblog.cn&quot;);\n        map.put(&quot;city&quot;, &quot;HZ&quot;);\n        map.put(&quot;age&quot;, 25);\n        BeanUtils.populate(user, map);\n        System.out.println(JSON.toJSONString(user));\n\n        BeanMap beanMap = new BeanMap(user);\n        System.out.println(JSON.toJSONString(beanMap));\n    }\n\n    public static class User {\n        String name;\n        String home;\n        int age;\n\n        public String getName() {\n            return name;\n        }\n\n        public void setName(String name) {\n            this.name = name;\n        }\n\n        public String getHome() {\n            return home;\n        }\n\n        public void setHome(String home) {\n            this.home = home;\n        }\n\n        public int getAge() {\n            return age;\n        }\n\n        public void setAge(int age) {\n            this.age = age;\n        }\n    }\n}<\/code><\/pre>\n<pre><code>{&quot;age&quot;:25,&quot;home&quot;:&quot;http:\/\/www.appblog.cn&quot;,&quot;name&quot;:&quot;Joe.Ye&quot;}\n{&quot;name&quot;:&quot;Joe.Ye&quot;,&quot;class&quot;:&quot;com.lianlian.global.pay.test.MapBeanConvert$User&quot;,&quot;age&quot;:25,&quot;home&quot;:&quot;http:\/\/www.appblog.cn&quot;}<\/code><\/pre>\n<h2>\u529f\u80fd\u5c01\u88c5<\/h2>\n<h3>bean \u8f6c\u6362\u6210 map<\/h3>\n<pre><code class=\"language-java\">private Map&lt;String, String&gt; bean2Map(Object object) {\n    Map&lt;String, String&gt; map = null;\n    try {\n        map = BeanUtils.describe(object);\n    } catch (Exception e) {\n        e.printStackTrace();\n    }\n    return map;\n}\n\nprivate BeanMap bean2Map(Object object) {\n    return new BeanMap(object);\n}<\/code><\/pre>\n<h3>map \u8f6c\u6362\u6210 bean<\/h3>\n<pre><code class=\"language-java\">private static &lt;T&gt; T map2Bean(Map&lt;String, String&gt; map, Class&lt;T&gt; clazz) {\n    T bean = null;\n    try {\n        bean = clazz.newInstance();\n        BeanUtils.populate(bean, map);\n    } catch (Exception e) {\n        e.printStackTrace();\n    }\n    return bean;\n}<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u57fa\u672c\u4f7f\u7528 Map -&gt; Bean BeanUtils.populate(Object bean, Map [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[43],"tags":[],"class_list":["post-333","post","type-post","status-publish","format-standard","hentry","category-java-basic"],"_links":{"self":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts\/333","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/comments?post=333"}],"version-history":[{"count":0,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts\/333\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/media?parent=333"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/categories?post=333"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/tags?post=333"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}