Map转json遇到一些问题

Map转json遇到一些问题最近发现了一个问题,通过查看用户的活跃度发现了奇怪的事情,有的用户访问某一个接口没有问题,而一些奇葩用户访问这一接口就是不成功,经过查看,原来是Android系统4.4以下map转换json的时候出现了问题,具体是什么了,下面我们来分析分析。第一,利用”org.json.JSONObject”下的JsonObject时,4.4以下的系统出现“=”的问题。比如:Map

大家好,又见面了,我是你们的朋友全栈君。

最近发现了一个问题,通过查看用户的活跃度发现了奇怪的事情,有的用户访问某一个接口没有问题,而一些奇葩用户访问这一接口就是不成功,经过查看,原来是Android系统4.4以下map转换json的时候出现了问题,具体是什么了,下面我们来分析分析。
第一,利用”org.json.JSONObject”下的JsonObject 时,4.4以下的系统出现“=”的问题。比如:

  Map<String, Object> map = new HashMap<>();
        map.put("name", "张山");
        map.put("age", 23);
        Map<String, Object> mapFav = new HashMap<>();
        mapFav.put("fav", "音乐");
        mapFav.put("work", "工程师");
        map.put("other", mapFav);
        JSONObject json =new JSONObject(map);

运行之后的结果是;

{
    "name": "张山",
    "age": 23,
    "other": "{work=工程师, fav=音乐}" }

这不是坑人嘛。好了出现这种问题,我们肯定要解决的。

解决办法:

第一:换jar包,利用“net.sf.json.JSONObject”下的JsonObject。看看效果。

 Map<String, Object> map = new HashMap<>();
        map.put("name", "张山");
        map.put("age", 23);
        Map<String, Object> mapFav = new HashMap<>();
        mapFav.put("fav", "音乐");
        mapFav.put("work", "工程师");
        map.put("other", mapFav);
        JSONObject json = JSONObject.fromObject(map);

看看运行的结果:

{
    "name": "张山",
    "age": 23,
    "other": { "work": "工程师", "fav": "音乐" } }

什么?下载地址哪里,不知道,看下面,使劲点击,点下面链接。
用到的jar 包,拷贝在libs文件下即可,

jar包下载

第二:利用Gson转化
Gson转化几行代码解决。

public static <T> String mapToJson(Map<String, T> map) {
        Gson gson = new Gson();
        String jsonStr = gson.toJson(map);
        return jsonStr;
    }

这个小问题,完美的解决了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/151340.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • SpringBoot使用@Mapper和@MapperScan注解无效的解决方法

    SpringBoot使用@Mapper和@MapperScan注解无效的解决方法在使用@Mapper注解时,注解无效,service层,dao层该添加的注解都添加了,最后发现是少加了一个jar包&amp;lt;!–缺少此jar包,导致@Mapper注解无效–&amp;gt;&amp;lt;dependency&amp;gt;&amp;lt;groupId&amp;gt;org.mybatis.spring.boot&amp;lt;/groupId&amp;gt;

  • pytest的使用_新代子程序重复调用

    pytest的使用_新代子程序重复调用Pytest执行用例规则Pytest在命令行中支持多种方式来运行和选择测试用例1.对某个目录下所有的用例pytest2.对模块中进行测试pytesttest_mod.py3.对文件夹进行

  • USACO sprime

    USACO sprime

    2021年12月30日
  • 台式计算机连不上网,台式机插上网线连不上网怎么办?[通俗易懂]

    台式计算机连不上网,台式机插上网线连不上网怎么办?[通俗易懂]由于你提供的问题描述不够详细具体,可能性太多了;这里为你分析下常见的一些情况以供参考!1.要确定是不是只有这一个台式机不能上网,同一个路由器下的其他终端是可以上网的。如果是这样,那基本和路由器设置无关(特殊情况例外)。2.台式机插上网线后,本地连接是否正常link起来?如果本地连接为一个“×”,那说明没有link成功,检查台式机的网卡驱动是否安装正常。由于此时台式机上不了网,建议你通过其他可以…

  • SPPnet 详解[通俗易懂]

    SPPnet 详解[通俗易懂]RCNN系列:RCNN,SPPNet,FastRCNN,FasterRCNN,R-FCN。  前不久刚刚看完rcnn和fastrcnn,对目标检测的学习更进一步。sppNet简介:作者:何凯明  2016年加入成为FAIR(facebook微软研究员),2011年获得博士学位,主要兴趣和研究在计算机视觉和深度学习。获得cpvr和iccv多个奖项。 SP…

  • 小记录

    小记录

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号