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\":\"debit\",
    \"MON_12_var1\":\"12\",
    \"crb_score\":\"0.012552760953\",
    \"cnp_score\":\"6\",
    \"MON_3_var1\":\"3\",
    \"RFM_12_var44\":\"6281.0\",
    \"RFM_12_var40\":\"0.0\",

  }",
"status":"0",
"value":"查询成功"
}

斜杠“\”是为了让后面的引号显示出来,解析式不必在意这个斜杠。这个json result后面的”{…}”这是一个字符串,而不是json对象。以往的话,是这样的:

{
"result":
  {
  "swift_number":"100032_20160127091434_7510",
  "Flag":
  {"specialList_c":"1"},
  "SpecialList_c":
  {
    "id":{"bank_lost":"0"},
    "cell":{},
    "gid":{}
  },
  "code":"00"
  },
"status":"0",
"value":"查询成功"
}

可以看出resullt后面的是 {。。。},而不是“{。。。}” 后面这个例子可以按照json对象处理。

而上面那个需要先把字符串转化为json对象,是这样处理的:

比如要想得到RFM_12_var6 的值

String o = json.getString( "result");
JSONObject object = JSONObject.parseObject(o);
String s = object.getString("RFM_12_var50" );//这样就可以得到RFM_12_var6的值

PS:如何解决json中携带的反斜杠

// 从服务器端获取Json字符串
String data= (JSONObject) event.getData().toString();
// 声明中间变量进行处理
String fly= data.replace("\\", "");
// 处理完成后赋值回去
data= fly.substring(1,fly.length() - 1);
// 这句代码就是为了检验效果的
LogUtils("反转的数据", data);
// 这里用的是Google的GSON
Gson gson = new Gson();
// 这个Json是一个Array类型,即包含多个JSONObject对象
List<FlyData> list = gson.fromJson(data, new TypeToken<List<FlyData>>() {}.getType());
//接下来你可以做其他你想要做的操作 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • PHP中让json_encode不自动转义斜杠“/”的方法

    前言 最近将使用爬虫爬取的链接保存到 mysql 数据库中时,发现我将链接使用 json_encode 保存时候,在数据库中却显示了转义字符,我并不需要这转义的,看起来不清晰而且占用存储空间. 后来发现在默认的情况之下使用 json_encode 对数组进行 json 格式的转换时候会自动的将数据中含有斜杠的字符串进行转义,但是我们往往有的时候不需要药对它们进行转义的,本文说说如何使用 json_encode 不自动转义斜杠. 对于如下数组 $a,现有两种办法解决: $a = array( 'h

  • PHP去掉json字符串中的反斜杠\及去掉双引号前的反斜杠

    通过AJAX传到PHP的json字符串有时候加上反斜杠"\"来转义,PHP处理时需要先去掉反斜杠,然后再json_decode. $str = stripslashes($_POST['json']); $arr = json_decode($str,true); PS:php get抓取json怎样去除双引号前面的反斜杠 你这个不算标准的JSON格式数据,可以先将\"替换成"即可. 再用json_decode()系统函数将其转为json对象,如需转为数组加上第二个

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

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

  • spring mvc中@PathVariable / 带斜杠方式获取

    目录 spring mvc @PathVariable / 带斜杠方式获取 实例 springMVC @PathVariable中间带/问题处理 问题 解决思路 spring mvc @PathVariable / 带斜杠方式获取 遇上这个问题,百度google了一下,抄袭里面的内容,可以实现,在此备忘 实例 @RequestMapping(value = "/download/{value1}/**", method = RequestMethod.GET) public void

  • php去掉json反斜杠的实例讲解

    1.通过"stripslashes($_POST['json']);"方法删除反斜杠. 2.通过"json_decode"对JSON格式的字符串进行解码即可. 通过AJAX传到PHP的json字符串有时候加上反斜杠"\"来转义,PHP处理时需要先去掉反斜杠,然后再json_decode. $str = stripslashes($_POST['json']);$arr = json_decode($str,true); stripslashes(

  • @PathVariable获取路径中带有 / 斜杠的解决方案

    @PathVariable获取路径中带"/"斜杠 问题 访问路径 http://192.168.10.243:1018/hpt/v2/photo/link/2021/7/headimage/super18909261952.jpg,需要获取/link/2021/7/headimage/super18909261952.jpg值 解决方案 @RequestMapping(value = "/v2/photo/{photoName}/**", produces = &q

  • 详解json串反转义(消除反斜杠)

    JSon串在被串行化后保存在文件中,读取字符串时,是不能直接拿来用JSON.parse()解析为JSON  对象的.因为它是一个字符串,不是一个合法的JSON对象格式.例如下面的JSON串保存在文件中,读出来不能直接解析: "{\"resourceId\":\"dfead70e4ec5c11e43514000ced0cdcaf\",\"properties\":{\"process_id\":\"proce

  • Java中转义字符反斜杠\的代替方法及repalceAll内涵解析

    一.需求 现有一个字符串str String str = "{\\\"name\\\":\\\"spy\\\",\\\"id\\\\":\\\"123456\\\"}"; System.out.println("str = " + str); 在控制台的输出为: str = {\"name\":\"spy\",\"id\":\&

  • PHP实现表单提交时去除斜杠的方法

    本文实例讲述了PHP实现表单提交时去除斜杠的方法.分享给大家供大家参考,具体如下: <html> <head> <title>HTML 表单</title> </head> <body> <form action="" method="POST"> 请输入一个字符串: <input type="text" size="30" name=&

  • nginx配置域名访问时域名后出现两个斜杠//的解决方法

    最近这两天重新写了一下我的个人网站,在阿里云新买了一台服务器,配置好以后出现了一个问题,就是输入域名后域名地址会自动在后面追加两个斜杆 并且网站还访问不了,仔细观察nginx配置后发现发现如下 解决办法 我们应该在nginx配置的路径后面加一个/ 配置完成后 保存重启 再次访问 就没有问题了 附配置文件 server { listen 80; server_name wx.pyxrsj.cn; include /etc/nginx/default.d/*.conf; location / { p

  • 关于Linux之grep查找文本时匹配反斜杠\转义问题

    在Linux系统中,当文本中有反斜杠 , 需要使用grep查找出带有反斜杠的内容 , 比如下面的文本 aaa bbb cccccc ddd\teee ffffff 想要查找出ddd\teee 这行的文本 如果你使用  cat xxx.txt  |grep "ddd\teee"    或者  cat xxx.txt  |grep "ddd\\teee 加一个转义,   是查不出来的 需要增加至少三个反斜杠才可以 , 比如这样 cat /tmp/test.txt|grep &qu

随机推荐