\"name\": 想把字符串里的 \去掉,应该java咋写?

wha37 发布于 2019/06/06 14:13
阅读 1K+
收藏 0

"column":["1"]}},"writer":{"name":"hdfswriter","parameter":{"defaultFS":"2","fileType":"2","path":"2","fileName":"2","column":["{                                 \"name\": \"id\"","\"type\": \"string\"                             }","{                                 \"name\": \"risk_level\"","\"type\": \"string\"                             }","{                                 \"name\": \"device_uuid\"","\"type\": \"string\"                             }","{                                 \"name\": \"event_device_id\"","\"type\": \"string\"                             }","{                                 \"name\": \"device_type\"","\"type\": \"string\"                             }","{                                 \"name\": \"event_type\"","\"type\": \"string\"                             }","{                                 \"name"],"writeMode":"1","fieldDelimiter":"1","compress":"1","scrollFileTime":"1"}}}]}}
 

加载中
0
鹿尤气
鹿尤气

str.replaceAll("\"","");

tcxu
tcxu
str.replaceAll("\"name\"","name");
红薯官方
红薯官方
str.replaceAll("\\\"","");
0
tcxu
tcxu

将数据存放(粘贴)到一个文档, 比如:data1.txt, 之中。
再将数据读入,并存放到 字符串 String str 之中。
然后,调用 str.replaceAll("\"name\"","name");
再将结果写回文档, 比如: data2.txt

0
f
freezingsky

spring 工具包, StringUtils.escapeJavaChars(xxx);

0
ArchitectureMaster
ArchitectureMaster

楼上的几位朋友虽然回答了楼主的问题,但明显没有理解楼主的意思。关键是按楼上几位朋友的做法根本就解决不了问题。

楼主虽然问的是去\,但分析这个字符串可以看出这个json字符串如果存为json文件是完全正确的(需要完整的而不是只是楼主的部分)转义的部分是column这个[]数组的每个值,而这个值由于使用了JSON.stringify方法转成了字符串所以特殊符号“被转义了,所以要解决这个所谓去\的问题根本就不是replace或正则替换的问题。

这里介绍一种用GSON来解析json字符串,使用其提供的Deserialization方法将json字符串转成Java对象,当转换完成时column里的内容自然转成java的字符串,而里面的\也自然没有了。

当然如果楼主只想把\去掉,那同时保持json文件的正确性,这里可以使用正则把\"替换成 '单引号,这样就可以保证可读性了。因为在js里'单引号表示纯字符串,里面内容不转义。

0
ericsoul
ericsoul
楼主 其实问的是 把带转义符的引号去掉转义符。楼上说通过json解析的是比较标准的答案,但是能直接把 转义符加上引号替换为引号是我认为比较合理的,比把转义符替换为空,要准确,又比用json解析的方式更加效率。这个问题其实就类似 使用圆周率到底是用根本的无效循环小数还是用3.14还是3.141592653的问题
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部