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 parseBasicjson(Map<String, String> map, String jsonStr, String parent_name, boolean isArray) {
        try {
            if (null != map && null != jsonStr && !"".equals(jsonStr)
                    && jsonStr.length() > 1) {
                if (isArray) {
                    JSONArray reqJson = new JSONArray(jsonStr);
                    StringBuffer sb = new StringBuffer();

                    for (int i = 0; i < reqJson.length(); i++) {
                        Object value = reqJson.get(i);
                        // 1.数组里面是对象
                        if (value instanceof JSONObject) {
                            parseBasicjson(map, value.toString(), parent_name, false);
                        } else if (value instanceof JSONArray) {
                            // 1.数组里面是对象
                            parseBasicjson(map, value.toString(), parent_name, true);
                        } 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) {
                            parseBasicjson(map, value.toString(), sb.toString(), false);
                        } else if (value instanceof JSONArray) {
                            parseBasicjson(map, value.toString(), sb.toString(), true);
                        } 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>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值