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;
    }

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

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

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

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • 什么是JavaSE,写给第一次接触Java的人

    什么是JavaSE,写给第一次接触Java的人Java语法基础Java开发环境搭建Java概述Java是一门编程语言,是用来编写软件的。QQ、迅雷、淘宝、京东等等这些常用软件都可以用Java来编写。其实,Java最擅长的是编写如下类型的软件:1、互联网:电商、P2P2、企业级应用:ERP、CRM、BOS、OAJavaSE是java分类中的标准版,是刚接触java要学习的基础知识。JavaEE是java分类中的企

    2022年7月8日
  • 2016年总结-JAVA程序员

    2016年总结-JAVA程序员

    2020年11月12日
  • LuaFileSystem学习心得

    LuaFileSystem学习心得

    2022年2月4日
  • drwtsn32.exe 遇到问题须要关闭。我们对此引起的不便表示抱歉

    drwtsn32.exe 遇到问题须要关闭。我们对此引起的不便表示抱歉

    2021年12月8日
  • python关于缩进_python缩进符号

    python关于缩进_python缩进符号在写作文的时候,老师会告诉我们每段要空两格,这两个空格标志着一个新的段落开始了。在编写程序的时候,我们也要采用类似的方式,通过缩进来表示代码块的开始和结束。认识缩进在之前学过的的例子中,我们所编写的都是简单的表达式语句,没有缩进。但是,要创建复合语句,就需要用到缩进这个重要的概念。我们可以把许多代码行组织到一个代码块中,其中的每一行代码的开始,都保持相同的空格数,通过查看代码行前面的空格数,就可以…

    2022年10月13日
  • 什么是404页面,如何正确设置制作404页面

    什么是404页面,如何正确设置制作404页面
    什么是404页面?
      404网页是用户尝试访问网站不存在的网页(由于用户点击了损坏的链接、网页已被删除或用户输入了错误的网址)时看到的页面。之所以称为404网页,是因为针对丢失网页的请求,网络服务器会返回404HTTP状态代码,表明该网页未找到。
    404页面的目的是:告诉浏览者其所请求的页面不存在或链接错误,同时引导用户使用网站其他页面而不是关闭窗口离开。
    404对搜索引擎优化seo的影响
      搜索引擎通过HTTP状态码来识别网页的状态。当

    2022年7月27日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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