为了账号安全,请及时绑定邮箱和手机立即绑定

如何取消转义json?

如何取消转义json?

PIPIONE 2022-10-20 15:03:34
我有一个转义的 json 字符串,比如我可以在这个站点上取消它,它会产生有效的 json:{  "uid": "93",  "channel_origin": "",  "sys_ver": "12.2",  "carrier_network_code": "02",  "rpn": "首页",  "app_ver": "9.3.8",  "event_time": 1556119062,  "carrier": "中国移动",  "event_guid": "E36FE60BFBFF405680906E3F95EC3953",  "ppn": "启动",  "device_token": "d323828f196a3ca665fa296a2a5f23a57cce83963328b73bd2cf78a7d55575ef",  "day_first": "442",  "abtest": "{\"app_home_change\":\"b\",\"app_icon_change\":\"b\"}",  "pn": "首页",  "puri": "http://app.mafengwo.cn/launch",  "day_before": "1",  "hardware_model": "iPhone10,3",  "lng": "114.427362",  "launch_guid": "69904D0912C943AC9D924AC8469CEA4E",  "app_code": "cn.mafengwo.www",  "_launch_source_history": "[]",  "idfv": "20587F0C-0F6E-4CD2-94C3-CE3A10CF0EFD",  "open_udid": "72F69B19-E612-4A4B-9D2F-8BB6C890421B",  "carrier_country_code": "cn",  "dev_ver": "D1908.0",  "device_type": "ios",  "ref": "http://app.mafengwo.cn/index?banner=1&channel_id=55&theme=1",  "lat": "27.818787",  "event_code": "show_index",  "idfa": "DC7D35C1-C81B-4884-96C5-C6BAE83FA7DA",  "uri": "http://app.mafengwo.cn/index?banner=1&channel_id=55&theme=1",  "channel_code": "",  "net": "1",  "_is_foreground": "1",  "sdk_ver": "20161011",  "_event_hash": "8ae3b940026375b8252e689113fc8c43f5bfddcf",  "ip": "39.176.24.64",  "umddid": 14696,  "topic": "mobile_event",  "ctime": 1556119062,  "ip_s": "node001026",  "datetime": "2019-04-24T23:17:42+08:00",  "uuid": "5c5ae87c-3b8b-2786-45b8-b16b969f8e7a",  "hour": "23",  "dt": "20190424",  "minute": "17",  "user_agent": "Safari Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 mfwappcode/cn.mafengwo.www mfwappver/9.3.8 mfwappdevver/D1908.0 mfwjssdk/1.1 mfwappjsapi/1.7",  "mfw_env": "product",  "attr": {    "_tpt": "信息流",    "prm_id": "",    "_tpa": "启动_首页",    "item_name": "机票火车票",    "item_source": "",  }}但是我怎么能在Java中做到这一点?我尝试过StringEscapeUtils.unescapeJavaapache commons,但它产生了类似的东西:其中更改\\\"为",而不是正确的\"。
查看完整描述

1 回答

?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

假设你确实有那个字符串,它看起来像是有人对它进行了双重编码(也就是说,将一个结构序列化为 JSON,然后再次将该字符串序列化为 JSON)。如果是这样,您应该能够将其解析为 JSON 并返回一个字符串——然后您可以将其解析为 JSON 以获取结构。


我没有使用杰克逊,但类似:


ObjectMapper objectMapper = new ObjectMapper();

String unwrappedJSON = objectMapper.readValue(json, String.class);

YourClass result = objectMapper.readValue(unwrappedJSON, YourClass.class);


查看完整回答
反对 回复 2022-10-20
  • 1 回答
  • 0 关注
  • 54 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信