美文网首页
Json字符串转Map

Json字符串转Map

作者: 史啸天 | 来源:发表于2020-03-11 10:30 被阅读0次

        今天为大家分享一下,超实用的json字符串转Map的方法,可以收藏起来做工具类使用哦;二话不说,上代码;

    1、引入jar
    <dependency>
            <groupId>net.sf.json-lib</groupId>
            <artifactId>json-lib</artifactId>
            <version>2.4</version>
            <classifier>jdk15</classifier>
    </dependency>
    
    2、创建工具类
    import net.sf.json.JSONArray;
    import net.sf.json.JSONObject;
    import java.util.Map;
    
    public class JsonToMap {
        private Object oJson;
    
        public JsonToMap(Object jStr) {
            this.oJson = jStr;
        }
    
        /**
         * 将获取的value值封装给对象
         * @param s value值
         * @return 对象
         */
        public JsonToMap get(Object s) {
            if (s instanceof Integer) return new JsonToMap(JSONArray.fromObject(oJson).get((int) s));
            else return new JsonToMap(jsonToMap(oJson).get(s));
    
        }
    
        @Override
        public String toString() {
            return oJson.toString();
        }
    
        /**
         * json string 转换为 map 对象
         *
         * @param jsonObj
         * @return
         */
        public static Map<Object, Object> jsonToMap(Object jsonObj) {
            JSONObject jsonObject = JSONObject.fromObject(jsonObj);
            Map<Object, Object> map = (Map) jsonObject;
            return map;
        }
    }
    

    3、测试一下

        /**
         * 测试jsonToMap
         */
        public static void main(String[] args) {
            /**
             * json示例
                {
                    "name": "BeJson",
                    "address": {
                        "street": "科技园路.",
                        "city": "江苏苏州",
                        "country": "中国"
                    },
                    "links": [
                        {
                            "name": "Google",
                            "url": "http://www.google.com"
                        },
                        {
                            "name": "Baidu",
                            "url": "http://www.baidu.com"
                        }
                    ]
                }
             */
            String json = "{\n" + 
                    "               \"name\": \"BeJson\",\n" + 
                    "               \"address\": {\n" + 
                    "                   \"street\": \"科技园路.\",\n" + 
                    "                   \"city\": \"江苏苏州\",\n" + 
                    "                   \"country\": \"中国\"\n" + 
                    "               },\n" + 
                    "               \"links\": [\n" + 
                    "                   {\n" + 
                    "                       \"name\": \"Google\",\n" + 
                    "                       \"url\": \"http://www.google.com\"\n" + 
                    "                   },\n" + 
                    "                   {\n" + 
                    "                       \"name\": \"Baidu\",\n" + 
                    "                       \"url\": \"http://www.baidu.com\"\n" + 
                    "                   }\n" + 
                    "               ]\n" + 
                    "           }";
            JsonToMap map = new JsonToMap(json);
            System.out.println(map.get("name").toString());
            System.out.println(map.get("address").get("country"));
            System.out.println(map.get("links").get(0).get("name"));
        }
    
    4、输入结果
    BeJson
    中国
    Google
    
    5、总结

        因为返回结果是jsonMap所以面对数组类型的,也可以直接get(index)出来,是不是超方便。

    相关文章

      网友评论

          本文标题:Json字符串转Map

          本文链接:https://www.haomeiwen.com/subject/betqjhtx.html