zoukankan      html  css  js  c++  java
  • c++中对于json的key不带双引号的问题修复

    在引用了第三方数据时,数据源通过转义,将json的key上双引号给去掉了。
    在PHP开发时,可以通过正则表达式替换方式来补充丢失的双引号,处理代码如下

    function ex_json_decode($s, $mode=false) 
    {
      if(preg_match('/w:/', $s))
        $s = preg_replace('/(w+):/is', '"$1":', $s);
      return json_decode($s, $mode);
    }
    在C++中,我用tr1的正则表达式处理,将源字符串进行修复,具体处理代码如下
    std::string fixProblemJsonString(const std::string& jsonString) 
    {
        std::regex_constants::syntax_option_type fl = std::regex_constants::icase;
        std::regex regReplaceExp("([a-zA-Z]\w*):", fl);
        return std::regex_replace(jsonString, regReplaceExp, ""$1":");
    }
    

    说明:

    我在此代码中,利用了一个规则” ([a-zA-Z]w*)“,只能用来处理字母开头的键值,如果该键值是数字开头的则该方案无能为力。偷笑

  • 相关阅读:
    Samba服务器配置
    Showdoc
    wkhtmltoimage(网页剪切功能)
    GTID数据库备份
    awstats日志分析
    docker桥接
    php的opcache缓存扩展(php页面代码刷新速度)
    Pureftp SSL/TLS配置
    ssh-keygen配置
    systemctl使用
  • 原文地址:https://www.cnblogs.com/sanghg/p/4073492.html
Copyright © 2011-2022 走看看