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()); 
//接下来你可以做其他你想要做的操作 

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

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容