码迷,mamicode.com
首页 > Web开发 > 详细

JSON解析值富文本

时间:2018-11-13 20:44:01      阅读:398      评论:0      收藏:0      [点我收藏+]

标签:targe   line   put   har   pattern   解决   []   inline   英文   

解析前端传递的JSON数据中可能如下

{ "result": "<input value="Test" type="button" onclick="alert(""OK"");" />", "msg": "test"} 

此时去解析是无法解析出来的,存在 / 空格 多的双引号,

参考多个结果

针对双引号(利用中文双引号代替多余的英文双引号后去解析JSON串)

public String jsonStringConvert(String s) {
        char[] temp = s.toCharArray();
        int n = temp.length;
        for (int i = 0; i < n; i++) {
            if (temp[i] == ‘:‘ && temp[i + 1] == ‘"‘) {
                for (int j = i + 2; j < n; j++) {
                    if (temp[j] == ‘"‘) {
                        if (temp[j + 1] != ‘,‘ && temp[j + 1] != ‘}‘) {
                            temp[j] = ‘”‘;
                        } else if (temp[j + 1] == ‘,‘ || temp[j + 1] == ‘}‘) {
                            break;
                        }
                    }
                }
            }
        }
        return new String(temp);
    }

针对空格(先调用此方法)

public String replaceBlank(String str) {
        String dest = "";
        if (str != null) {

            Pattern p = Pattern.compile("\\s*|\t|\r|\n");
            Matcher m = p.matcher(str);
            dest = m.replaceAll("");
            // Pattern p2 = Pattern.compile("\\s*\"");
            // Matcher m2 = p2.matcher(dest);
            // dest = m2.replaceAll("\‘");
            dest = dest.replace("=\"", "=‘");
            p = Pattern.compile("\"\0*>");
            m = p.matcher(dest);
            dest = m.replaceAll(">‘");
        }
        return dest;

    }

以上会造成数据的格式少了空格,需要自己去添加上(不能很好的解决问题)

对双引号进行转译

对富文本加密,后台解密存储

 

 

 

 

参考:https://blog.csdn.net/jbb0403/article/details/45918693

  :

JSON解析值富文本

标签:targe   line   put   har   pattern   解决   []   inline   英文   

原文地址:https://www.cnblogs.com/oldzhang1222/p/9953738.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!