`

解析带有反斜杠的json数据

 
阅读更多

今天在对接京东到家平台的时候取得的订单数据含有反斜杠,并且data数据是字符串类型的json格式的数据,数据中包含很多的反斜杠,完整数据如下:

{"code":"0","msg":"操作成功","data":"{\"result\":\"{\\\"pageNo\\\":1,\\\"pageSize\\\":20,\\\"maxPageSize\\\":100,\\\"totalCount\\\":1,\\\"resultList\\\":[{\\\"orderId\\\":624573044000041,\\\"srcOrderId\\\":\\\"624573044000041\\\",\\\"srcPlatId\\\":4,\\\"srcOrderType\\\":0,\\\"srcInnerType\\\":0,\\\"srcInnerOrderId\\\":0,\\\"orderType\\\":10000,\\\"orderStatus\\\":90000,\\\"orderStatusTime\\\":\\\"2016-10-11 10:18:11\\\",\\\"orderStartTime\\\":\\\"2016-10-11 09:50:43\\\",\\\"orderPurchaseTime\\\":\\\"2016-10-11 09:50:57\\\",\\\"orderAgingType\\\":12,\\\"orderPreStartDeliveryTime\\\":\\\"2016-10-11 11:50:00\\\",\\\"orderPreEndDeliveryTime\\\":\\\"2016-10-11 11:50:00\\\",\\\"orderIsClosed\\\":true,\\\"orderCloseTime\\\":\\\"2016-10-11 10:18:11\\\",\\\"orgCode\\\":\\\"74554\\\",\\\"buyerPinType\\\":0,\\\"buyerPin\\\":\\\"JD_350u24a96522f\\\",\\\"buyerFullName\\\":\\\"王斌\\\",\\\"buyerFullAddress\\\":\\\"武汉市江汉区金雅公寓2栋1单元902室\\\",\\\"buyerMobile\\\":\\\"13720339384\\\",\\\"buyerProvince\\\":\\\"0\\\",\\\"buyerCity\\\":\\\"1381\\\",\\\"buyerCountry\\\":\\\"3582\\\",\\\"produceStationNo\\\":\\\"10055023\\\",\\\"produceStationName\\\":\\\"可多直营-汉兴小区店\\\",\\\"produceStationNoIsv\\\":\\\"0014\\\",\\\"deliveryStationNo\\\":\\\"10055023\\\",\\\"deliveryStationName\\\":\\\"可多直营-汉兴小区店\\\",\\\"deliveryStationNoIsv\\\":\\\"0014\\\",\\\"deliveryType\\\":1,\\\"deliveryCarrierNo\\\":\\\"9966\\\",\\\"deliveryCarrierName\\\":\\\"达达专送\\\",\\\"deliveryBillNo\\\":\\\"624573044000041\\\",\\\"deliveryPackageWeight\\\":1.7179999649524689,\\\"deliveryPackageVolume\\\":0,\\\"deliveryManName\\\":\\\"涂志学\\\",\\\"deliveryManPhone\\\":\\\"15926351698\\\",\\\"deliveryConfirmTime\\\":\\\"2016-10-11 10:18:10\\\",\\\"orderPayType\\\":4,\\\"orderTotalMoney\\\":7300,\\\"orderDiscountMoney\\\":500,\\\"orderFreightMoney\\\":200,\\\"orderBuyerPayableMoney\\\":7000,\\\"orderVenderChargeMoney\\\":0,\\\"packagingMoney\\\":0,\\\"orderBalanceUsed\\\":0,\\\"orderInvoiceOpenMark\\\":2,\\\"adjustIsExists\\\":false,\\\"adjustCount\\\":0,\\\"orderFinanceOrgCode\\\":706,\\\"isJDGetCash\\\":true,\\\"adjustId\\\":0,\\\"orderJingdouMoney\\\":0,\\\"ts\\\":\\\"2016-10-11 10:18:11\\\",\\\"buyerCityName\\\":\\\"武汉市\\\",\\\"buyerCountryName\\\":\\\"江汉区\\\",\\\"buyerCoordType\\\":2,\\\"buyerLat\\\":30.6216,\\\"buyerLng\\\":114.244,\\\"buyerIp\\\":1001139541,\\\"orderBuyerRemark\\\":\\\"所购商品如遇缺货,您需要(门店默认配置):未缺货商品继续配送(缺货商品退款)\\\",\\\"businessTag\\\":\\\"dj_new_cashier;dj_aging_immediately;dj_bld;picking_up;\\\",\\\"equipmentId\\\":\\\"B8F4F80C-EBAD-4223-B666-1784E4F77F37\\\",\\\"buyerPoi\\\":\\\"金雅公寓\\\",\\\"product\\\":[{\\\"skuId\\\":2001716488,\\\"skuName\\\":\\\"潘婷乳液修护优惠装700ml/瓶\\\",\\\"skuIdIsv\\\":\\\"6903148204078\\\",\\\"skuSpuId\\\":0,\\\"skuJdPrice\\\":4900,\\\"skuCount\\\":1,\\\"skuStockOwner\\\":0,\\\"isGift\\\":false,\\\"adjustMode\\\":0,\\\"upcCode\\\":\\\"6903148204078\\\",\\\"categoryId\\\":\\\"21232,21233,22984\\\",\\\"skuStorePrice\\\":4900,\\\"promotionType\\\":1,\\\"promotionId\\\":17640,\\\"skuWeight\\\":0.7979999780654907,\\\"canteenMoney\\\":0},{\\\"skuId\\\":2001716594,\\\"skuName\\\":\\\"康师傅爆椒牛肉面98g/袋\\\",\\\"skuIdIsv\\\":\\\"6920734737901\\\",\\\"skuSpuId\\\":0,\\\"skuJdPrice\\\":300,\\\"skuCount\\\":2,\\\"skuStockOwner\\\":0,\\\"isGift\\\":false,\\\"adjustMode\\\":0,\\\"upcCode\\\":\\\"6920734737901\\\",\\\"categoryId\\\":\\\"20392,20949,20970\\\",\\\"skuStorePrice\\\":300,\\\"promotionType\\\":1,\\\"promotionId\\\":17640,\\\"skuWeight\\\":0.09799999743700027,\\\"canteenMoney\\\":0},{\\\"skuId\\\":2001716721,\\\"skuName\\\":\\\"统一来一桶老坛酸菜牛肉味面120g/桶\\\",\\\"skuIdIsv\\\":\\\"6925303773106\\\",\\\"skuSpuId\\\":0,\\\"skuJdPrice\\\":400,\\\"skuCount\\\":2,\\\"skuStockOwner\\\":0,\\\"isGift\\\":false,\\\"adjustMode\\\":0,\\\"upcCode\\\":\\\"6925303773106\\\",\\\"categoryId\\\":\\\"20392,20949,20952\\\",\\\"skuStorePrice\\\":400,\\\"promotionType\\\":1,\\\"promotionId\\\":17640,\\\"skuWeight\\\":0.11999999731779099,\\\"canteenMoney\\\":0},{\\\"skuId\\\":2001716726,\\\"skuName\\\":\\\"统一100老坛酸菜牛肉面121g/袋\\\",\\\"skuIdIsv\\\":\\\"6925303773915\\\",\\\"skuSpuId\\\":0,\\\"skuJdPrice\\\":250,\\\"skuCount\\\":4,\\\"skuStockOwner\\\":0,\\\"isGift\\\":false,\\\"adjustMode\\\":0,\\\"upcCode\\\":\\\"6925303773915\\\",\\\"categoryId\\\":\\\"20392,20949,20970\\\",\\\"skuStorePrice\\\":250,\\\"promotionType\\\":1,\\\"promotionId\\\":17640,\\\"skuWeight\\\":0.12099999934434891,\\\"canteenMoney\\\":0}],\\\"discount\\\":[{\\\"skuIds\\\":\\\"2001716594,2001716721,2001716488,2001716726\\\",\\\"discountType\\\":4,\\\"discountDetailType\\\":1,\\\"discountCode\\\":\\\"17640\\\",\\\"discountPrice\\\":500}],\\\"appVersion\\\":\\\"iOS3.4.0\\\",\\\"yn\\\":false,\\\"payChannel\\\":9002,\\\"isDeleted\\\":false,\\\"orderGoodsMoney\\\":7300,\\\"orderStockOwner\\\":3,\\\"orderSkuType\\\":0,\\\"isGroupon\\\":false,\\\"orderBaseFreightMoney\\\":200,\\\"orderLadderFreightMoney\\\":0,\\\"orderAdditionFreightMoney\\\":0,\\\"orderBaseReceivableFreight\\\":0,\\\"orderAcceptTime\\\":\\\"2016-10-11 09:51:00\\\",\\\"businessType\\\":1}],\\\"totalPage\\\":1,\\\"page\\\":1}\",\"detail\":\"\",\"code\":\"0\",\"msg\":\"操作成功\"}","success":true}

 当直接用fastjson进行解析时报错如下:



 我的代码写法如下:



 ,后来通过如下方式解决:

先看结果图:



 解决代码如下:



 

JSONUtil类:



 上面通过先转成map这种方式应该是可靠的。在解决问题的时候,有个朋友说用new String(result)试下,我就试了下,结果也可以,就是上面代码的aaa的输出,然后让另一个同学试了下,他那用new的方式还是会报最初的转换错误,具体原因不太清楚,不知道这两种String到底有什么区别,还请各位大神指点下。

 

  • 大小: 1.5 MB
  • 大小: 51 KB
  • 大小: 366.5 KB
  • 大小: 92.6 KB
  • 大小: 103.2 KB
分享到:
评论

相关推荐

    json 带斜杠时如何解析的实现

    比如像这样的JSON: { "result": "{ \"RFM_12_var6\":\"17\", \"RFM_12_var50\":\"19\", \"RFM_12_var20\":\"5950.0\", \"rsk_score\":\"856\", \"FLAG_6_var4\":\"1\", \"FLAG_6_var1\":\"3\", \"dc_flag\...

    JSON数据中存在单个转义字符“\”的处理方法

    在处理JSON数据时,经常会遇到转义字符的使用,尤其是反斜杠(\)。在JSON格式的字符串中,反斜杠用作转义字符的引导,例如用来转义一个双引号("),以确保双引号被包含在字符串中而不是被解释为字符串的结束。然而...

    Python-xmltodict像处理JSON一样处理XML

    除了基本的解析和转换,`xmltodict`还提供了其他有用的功能,如命名空间处理、内联XML Schema定义等,使得处理带有复杂结构和命名空间的XML文档变得更加容易。 总之,`xmltodict`库是Python开发中处理XML数据的一个...

    解析错误富文本json字符串(带双引号)的快速解决方法

    在给定的场景中,问题在于HTML标签内的双引号以及反斜杠,这些都需要被适当地处理,以便正确解析JSON。 一种解决方案是通过编程来替换非JSON规范的双引号。在提供的Java代码示例中,`jsonStringConvert` 方法用于将...

    java转json串的几种方法

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。以下我们将详细探讨Java中将对象转换为JSON字符串的三种方法,这里使用的是阿里巴巴的Fastjson库,它...

    js中把JSON字符串转换成JSON对象最好的方法

    在实际开发中,使用eval()或Function对象来解析JSON数据是不推荐的,因为它们会执行字符串中的代码,可能会导致安全漏洞,例如跨站脚本攻击(XSS)。因此,应当优先考虑使用JSON.parse()等安全的方法。 综上所述,...

    ECMA-404-JSON.pdf

    ECMA-404,即《JSON数据交互语法》第二版,是ECMA国际制定的一个标准,旨在规定JSON的准确语法和语义。 1. **范围** (Scope) ECMA-404标准定义了JSON文本的结构和组成,包括JSON值、对象、数组、数字和字符串等...

    php让json_encode不自动转义斜杠“/”的方法

    具体来说,就是在`json_encode`的输出字符串中,把所有带有反斜杠和斜杠的组合(“\/”)替换为单一的斜杠(“/”)。这种方法简单易行,但需要额外的替换步骤,并且可能会引起其他转义字符的误替换。 方法二:使用...

    快速解决owin返回json字符串多带了双引号”多了重string转义字符串

    标题中的"快速解决owin返回json字符串多带了双引号”多了重string转义字符串"指的是在OWIN中返回JSON数据时,JSON字符串中的双引号被额外转义,导致最终接收到的JSON数据格式不正确。这种情况通常是因为在多个地方...

    JSON字符串传到后台PHP处理问题的解决方法

    此外,针对前端发送的JSON数据,应当考虑到不同浏览器以及不同环境下的兼容性问题,以确保数据可以准确无误地被后台接收和解析。 文章还提到了一个问题,就是由于技术原因,在OCR扫描文档的过程中可能会出现个别的...

    C#实现Json转Unicode的方法

    以下是一种C#实现Json转Unicode的方法,该方法可以将带有JSON格式的文本转换为正常文本。 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于ECMAScript的一个子集。在JSON中,某些特殊字符如...

    Python库 | pyjson5-1.5.3-pp36-pypy36_pp73-manylinux1_x86_64.whl

    3. **多行字符串** - 支持使用反斜杠(\)后接三个引号(`"""`)创建多行字符串。 4. **注释** - JSON5允许在代码中插入单行(//)和多行(/* */)注释。 5. **未转义的Unicode字符** - 允许在字符串中直接使用Unicode字符,...

    php5.2以下版本无json_decode函数的解决方法

    如果遇到字符串值,由于JSON字符串是用双引号包围的,我们需要小心处理字符串内的特殊字符,尤其是双引号和反斜杠,因为它们可能会误导字符串的解析。 通过以上的思路,我们可以编写出一个简单的自定义json_decode...

    java调用shell向DataX传参,带where条件,特殊字符

    在涉及特殊字符时,DataX的参数可能需要进行URL编码,或者在JSON字符串中使用反斜杠(`\`)进行转义。 以下是一个DataX JSON配置文件的示例,其中包含了一个带特殊字符的where条件: ```json { "job": { "content...

    精易模块[源码] V5.15

    1、改善“文件_取文件名”与“目录_取尾部目录名或文件名”取出路后带斜杠问题,感谢论坛易友【雷雷】反馈。 2、改善“文本_取行数”载入大数据程序处理效率问题,感谢某位易友反馈。 3、新增“编码_Ansi到十进制_...

Global site tag (gtag.js) - Google Analytics