• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
导航菜单
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx
您的位置:首页 > 服务器 >云计算 > 使用simple json时遇到的一个小问题,simplejson

使用simple json时遇到的一个小问题,simplejson

作者:网友 字体:[增加 减小] 来源:互联网

本文主要包含simplejson,python simplejson,unity simplejson,simplejson安装,golang simplejson等服务器相关知识,网友希望可以进行参考

使用simple json时遇到的一个小问题,simplejson


发现问题

最近写了个程序,在构建http参数的时候使用到了org.json.simple.JSONObject这个类,上线之后有客户反馈说http参数格式不正确,如果参数中包含斜杠(/)则前面都会自动加上一个反斜杠()。

调查问题

发现问题之后首先去看了一下simple json的源代码,在他的源码中发现如下一段:

    public static void writeJSONString(Map map, Writer out) throws IOException {
        if(map == null){
            out.write("null");
            return;
        }

        boolean first = true;
        Iterator iter=map.entrySet().iterator();

        out.write('{');
        while(iter.hasNext()){
            if(first)
                first = false;
            else
                out.write(',');
            Map.Entry entry=(Map.Entry)iter.next();
            out.write('\"');
            out.write(escape(String.valueOf(entry.getKey())));
            out.write('\"');
            out.write(':');
            JSONValue.writeJSONString(entry.getValue(), out);
        }
        out.write('}');
    }

    public String toString(){
        return toJSONString();
    }

    /**
     * Escape quotes, \, /, \r, \n, \b, \f, \t and other control characters(U+0000 through U+001F).
     * It's the same as JSONValue.escape() only for compatibility here.
     * 
     * @see org.json.simple.JSONValue#escape(String)
     * 
     * @param s
     * @return
     */
    public static String escape(String s){
        return JSONValue.escape(s);
    }

从中可以知道,simple json在序列化的时候已经将string中的斜杠(还包含其他很多字符)转义了,在前面自动加上了反斜杠,问题根源找到。

解决方案

特别说明

其实国际规范中json中的key和value的字符串中包含的斜杠是需要转义的,只是转义之后在笔者的使用场景下会出错,特此说明。ECMA-404 json标准

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 使用simple json时遇到的一个小问题,simplejson

相关文章

  • 独家教程利用VPS服务器搭建独享VPN(基于Centos6.4 Openvpn),vpsopenvpn
  • [Hive]关于Hive的启动问题,hive启动问题
  • 漫谈分布式系统:三种通信范型
  • ElasticSearch的分布式安装
  • 深入理解kafka设计原理,深入理解kafka设计
  • java保留两位小数,java两位小数
  • B-TREE索引,btree
  • Azkaban的AJAX的RestFul接口调用事例
  • Elasticsearch之Nested Object Mapping,elasticsearch
  • jsp中用EL读取了数据库里面的时间,怎么设置格式显示的格式,jspel

文章分类

  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx

最近更新的内容

    • Hadoop平台安装前准备,hadoop平台准备
    • 一步一步跟我学hadoop(1)----hadoop概述和安装配置,hadoop----hadoop
    • 【解决】 CentOS6.6安装CM5.4的问题,centos6.6cm5.4
    • KVM 【SNAT/DNAT2种配置实现以及扁平化网络模式(flat)实现/virsh2种动态迁移实现】,kvmsnat
    • JS查看Object对象的内容,jsobject对象
    • Hadoop之——Java操作HBase,hadoopjavahbase
    • hadoop的namenode无法启动的解决办法,hadoopnamenode
    • hive UDF自动增长列函数,hiveudf列函数
    • Hadoop学习---第三篇Hadoop的第一个Mapreduce程序,hadoopmapreduce
    • Andrew Ng机器学习课程10,andrewng机器课程

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有