Java json 字符串处理

时间:2019-01-18
本文章向大家介绍Java json 字符串处理,主要包括Java json 字符串处理使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

json 字符串介绍:

示例:

"adslot":{"id":"3169","bidfloor":10.0,"bidfloorcur":"CNY","count":"1","instl":0,
"banner":{"w":1080,"h":1920,"pos":0,"battr":[]},
"nativ":null,"video":null,"is_splash_screen":1,
"bitc":["1","2"],
"request_render_type":"JSON","deeplink":"UNSUPPORT"}

json 中括号代表含义;

{}:代表一个对象

[]:代表一个数组

"" 双引号内是属性或值

: 冒号表示后者是前者的值(这个值可以是字符串、数字、也可以是另一个数组或对象)

针对json 字符串的解析:

public void parseResDspjson(Map<String, String> map, String jsonStr, String parent_name, boolean isArray, List<Map<String, String>> list) {
        try {
            if (null != map && null != jsonStr && !"".equals(jsonStr)
                    && jsonStr.length() > 1) {
                if (isArray) {
                             for (int i = 0; i < reqJson.length(); i++) {
                            Object value = reqJson.get(i);
                            // 1.数组里面是对象
                            if (value instanceof JSONObject) {
                                parseResDspjson(map, value.toString(),
                                        parent_name, false, list);
                            } else if (value instanceof JSONArray) {
                                // 1.数组里面是对象
                                parseResDspjson(map, value.toString(),
                                        parent_name, true, list);
                            } else {
                                // 1.数组里面是字符串
                                if (sb.length() > 0)
                                    sb.append(",");
                                sb.append(value.toString().trim());
                                if (i == reqJson.length() - 1) {
                                    map.put(parent_name, sb.toString());
                                }
                            }
                        }
                } else {
                    JSONObject reqJson = new JSONObject(jsonStr);
                    Iterator<?> keys = reqJson.keys();
                    StringBuffer sb = new StringBuffer();

                    while (keys.hasNext()) {
                        String key = keys.next().toString();
                        Object value = reqJson.get(key);
                        sb.delete(0, sb.length());
                        if (null != parent_name && !"".equals(parent_name)) {
                            sb.append(parent_name + "_" + key);
                        } else {
                            sb.append(key);
                        }
                        if (value instanceof JSONObject) {
                            parseResDspjson(map, value.toString(), sb.toString(), false, list);
                        } else if (value instanceof JSONArray) {
                            parseResDspjson(map, value.toString(), sb.toString(), true, list);
                        } else {
                            map.put(sb.toString(), value.toString().trim());
                        }
                    }
                }

            }
        } catch (Exception e) {
        }
    }

引入依赖:

<dependency>
    <groupId>org.codehaus.jettison</groupId>
    <artifactId>jettison</artifactId>
    <version>1.3.3</version>
</dependency>