1 DXDE443 OP 发错了,是 String jsOnStr= "\"{\"name\":\"Jack\",\"age\":18}\"" |
![]() | 2 yukiww233 2018-07-10 14:37:10 +08:00 new Gson().fromJson(String, Class<T>) |
![]() | 3 InternetExplorer 2018-07-10 14:38:00 +08:00 秘籍●多重字符之术 ===================== 其实把 jsonStr 左右的两个引号去掉就是标准的 JSON 字符串了 |
4 DXDE443 OP 还是不太对,应该是 String jsOnStr= "\"{\\\"name\\\":\\\"Jack\\\",\\\"age\\\":18}\"" |
5 luozic 2018-07-10 14:41:01 +08:00 via iPhone gson 等 java 里面的 json 工具库了解一下 |
6 DXDE443 OP 不对不对,普通的解析我当然会,比如{"name" : 1},可我现在要解析的事"{\"name\" : 1}"这个样子的 |
![]() | 7 pipixia 2018-07-10 14:43:23 +08:00 replace 一下 |
8 DXDE443 OP |
9 luozic 2018-07-10 14:51:12 +08:00 via iPhone 反序列化再处理。 |
![]() | 10 execute 2018-07-10 14:59:23 +08:00 你可以试试用一下 com.alibaba.fastjson,我觉得挺好用的。有你正文里提到的 JSON.parse()方法 |
![]() | 11 InternetExplorer 2018-07-10 14:59:30 +08:00 这样话就不是 JSON,让给你 JSON 的给你一个标准的 JSON |
12 DXDE443 OP @InternetExplorer 我是调用客户系统的 webService,内容我做不了主啊 |
![]() | 13 kba977 2018-07-10 15:03:30 +08:00 fastjson 直接 parse 一下就好了  |
![]() | 14 chocotan 2018-07-10 15:05:10 +08:00 StringEscapeUtils.unescapeJson 然后去掉两头的" |
15 DXDE443 OP 我说的这个用 js 的话 JSON.parse(eval(jsonStr))然后就解决了,我不知道用 java 怎么处理 |
![]() | 16 kba977 2018-07-10 15:08:13 +08:00 ![]() |
![]() | 17 lululau 2018-07-10 15:13:25 +08:00 SomeJSONParser.simeParseMethod(org.apache.commons.lang.StringEscapeUtils.unescapeJava(str)) |
19 feiyuanqiu 2018-07-10 15:22:46 +08:00 反斜线是 escape character - php 可以用 stripcslashes 函数处理 - java 可以用 -- apache 的 commons-lang3 库的 StringEscapeUtils.unescapeJson() 方法 -- 或者 commons-text 库的 StringEscapeUtils.unescapeJson() 方法处理 |
20 DXDE443 OP 刚刚想试 StringEscapeUtils 但本地只有 commons-lang3 的库,过时了,我强迫症不想用,又没有外网下不了 commons-text,不过还是谢各位老哥建议,老哥们说话又好听我超喜欢在这里面的 |
![]() | 21 pipixia 2018-07-10 15:27:13 +08:00 <code>jsonStr.substring(jsonStr.indexOf("\"")+1,jsonStr.lastIndexOf("\"")).replace("\\","")</code> |
22 notreami 2018-07-10 20:01:06 +08:00 比起怎么解析,为什么不从源头让 json 字符串规范呢?? |