JSON处理依赖:fastjson 问题: 对一个json字符串转换成fastjson中的JSONObject对象的时候如果该json字符串中带有多余的反斜杠,可能会导致解析失败; 举例: //现有一个json字符串String s = "
对一个json字符串转换成fastjson中的JSONObject对象的时候如果该json字符串中带有多余的反斜杠,可能会导致解析失败;
举例:
//现有一个json字符串String s = "{\"job\":{\"setting\":{\"restore\":{\"maxRowNumForCheckpoint\":0,\"isRestore\":false,\"restoreColumnName\":\"\",\"restoreColumnIndex\":0},\"errorLimit\":{\"record\":100},\"speed\":{\"bytes\":0,\"channel\":1}}}}";//对该字符串做处理JSONObject jsonObject = JSONObject.parseObject(s);System.out.println(jsonObject);
这时候就会报错
这种简单的反斜杠处理有两种方式:
简单粗暴去掉字符串中的反斜杠:
//现有一个json字符串String s = "{\"job\":{\"setting\":{\"restore\":{\"maxRowNumForCheckpoint\":0,\"isRestore\":false,\"restoreColumnName\":\"\",\"restoreColumnIndex\":0},\"errorLimit\":{\"record\":100},\"speed\":{\"bytes\":0,\"channel\":1}}}}";//解析前去除反斜杠,将反斜杠替换为空字符串s = StringUtils.replace(s, "\\", "");//对该字符串做处理JSONObject jsonObject = JSONObject.parseObject(s);System.out.println(jsonObject);
解析前反转义一下
//现有一个json字符串String s = "{\"job\":{\"setting\":{\"restore\":{\"maxRowNumForCheckpoint\":0,\"isRestore\":false,\"restoreColumnName\":\"\",\"restoreColumnIndex\":0},\"errorLimit\":{\"record\":100},\"speed\":{\"bytes\":0,\"channel\":1}}}}";//解析前反转义该json字符串s = StringEscapeUtils.unescapejavascript(s);//对该字符串做处理JSONObject jsonObject = JSONObject.parseObject(s);System.out.println(jsonObject);
如果这两种方法都不行,或者说json中的反斜杠情况略微复杂,去除所有反斜杠后会让json字符串的本意发生变化的话,那可以试试下面的方法
//现有一个json字符串String s = "{\"job\":{\"setting\":{\"restore\":{\"maxRowNumForCheckpoint\":0,\"isRestore\":false,\"restoreColumnName\":\"\",\"restoreColumnIndex\":0},\"errorLimit\":{\"record\":100},\"speed\":{\"bytes\":0,\"channel\":1}}}}";//解析前处理json字符串 s = new String(s);//对该字符串做处理JSONObject jsonObject = JSONObject.parseObject(s);System.out.println(jsonObject);
来源地址:https://blog.csdn.net/weixin_45371233/article/details/127301475
--结束END--
本文标题: java处理解析带有反斜杠的json
本文链接: https://www.lsjlt.com/news/389673.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-04-03
2024-04-03
2024-04-01
2024-01-21
2024-01-21
2024-01-21
2024-01-21
2023-12-23
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0