map怎么转json对象_object转jsonobject

map怎么转json对象_object转jsonobject业务背景:因为要嵌套一些数据报表,页面点击菜单直接进行url访问,因访问受限要修改url权限,返回数据是JSONObject,防止出现异常,后台进行了一些Map于JSONObject的转换,记录下来配置得json文件格式:{“redashLinks”:[{“name”:”在盈利表”,”url”:”http://i…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

业务背景:因为要嵌套一些数据报表,页面点击菜单直接进行url访问,因访问受限要修改url权限,返回数据是JSONObject,防止出现异常,后台进行了一些Map于JSONObject的转换,记录下来

配置得json文件格式:

{"redashLinks": [
        {
            "name": "在盈利表",
            "url": "http://ip/public/dashboards/share/fQUPgt8oLyuunojAEVUzsGn8G9bOYVNFl2KuZzsv"
        },
        {
            "name": "在亏损表",
            "url": "http://ip/public/dashboards/share/qDsDeOM0JMomy3ZgCEhxnPYWgzCpiMp93KfYRvhT"
        }
    ]
}

将得到的json数据转换处理

// jsonobject 转换 map
		Map<String,Object> jsonMap = jsonStrToMap(jsonObjFromResource);
// map 转换 String
		ObjectMapper mapper = new ObjectMapper();
		String writeValueAsString = mapper.writeValueAsString(jsonMap);
// String 转换 JSONObject
		return JSONObject.parseObject(writeValueAsString);

 

第一步:将获取得jsonobject转换map,在url中改造

引入的都是util的包

 

/** 
	* json转换改造url
	* @param json 获取得json文件
	* @return
	*/
	@SuppressWarnings("unchecked")
	private Map<String,Object> jsonStrToMap(JSONObject json) {
		Map<String, String> apiKey = getApiKey();
		Map<String, Object> data = new HashMap<>();// 循环转换
		Iterator<Entry<String, Object>> it = json.entrySet().iterator();
		while (it.hasNext()) {
			List<Map<String, String>> listMap = new ArrayList<Map<String, String>>();
			Map.Entry<String, Object> entry = (Entry<String, Object>) it.next();
			List<Map<String, String>> list = (List<Map<String, String>>) entry.getValue();
			for (Map<String, String> map : list) {
				Map<String, String> newMap = new HashMap<String,String>();
				StringBuffer str = new StringBuffer();
				/* 地址拼接key */
				str.append(map.get("url"));
				str.append("?key=");
				str.append(apiKey.get("api_key"));
				newMap.put(map.get("name"), str.toString());
				listMap.add(newMap);

			}
			data.put(entry.getKey(), listMap);
		}
		return data;

	}

第二步,将返回的map转回jsonobject

引入的包:import com.fasterxml.jackson.databind.ObjectMapper;   pom中的包路径见下方

        ObjectMapper mapper = new ObjectMapper();
		String writeValueAsString = mapper.writeValueAsString(jsonMap);

转换完成后发现是String类型,加一步 String转换jsonObject

JSONObject.parseObject(writeValueAsString)

pom中引用的包路径:

    <!-- jackson json 优化缓存对象序列化 -->
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.9.8</version>
      <scope>compile</scope>
    </dependency>


        <dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>fastjson</artifactId>
			<version>1.2.7</version>
		</dependency>

 

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

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

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


相关推荐

  • python进阶(8)多进程

    python进阶(8)多进程进程前置知识点进程:一个程序运行起来后,代码+用到的资源称之为进程,它是操作系统分配资源的基本单元。并发:指的是任务数多余cpu核数,通过操作系统的各种任务调度算法,实现用多个任务“一起”执行

    2022年7月28日
    7
  • Mysql 截取字符串总结

    Mysql 截取字符串总结MySQL字符串截取函数:left(),right(),substring(),substring_index()。还有mid(),substr()。其中,mid(),substr()等价于substring()函数,substring()的功能非常强大和灵活。1.字符串截取:left(str,length)2.字符串截取:right(str,length)  …

    2022年6月9日
    30
  • navicat15版本的激活码【2021.7最新】

    (navicat15版本的激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlMLZPB5EL5Q-eyJsa…

    2022年3月21日
    90
  • iOS开发无第三方控件的援助达到的效果侧边栏

    iOS开发无第三方控件的援助达到的效果侧边栏

    2022年1月6日
    54
  • phpstorm—下载安装配置教程

    phpstorm—下载安装配置教程本文仅供学习交流使用,如侵立删!联系方式及demo下载见文末PhpStorm是JetBrains公司开发的一款商业的PHP集成开发工具,主要为程序开发者提高开发效率,可深刻理解用户的编码,提供强大的智能代码补全,快速导航以及即时错误检查,大大提高了开发效率,但也为很多开发者带来了不便,phpstorm已经不提供注册码了,需要购买商业的版权才能使用。1、下载phpstrom软件官网:https://www.jetbrains.com/phpstorm/嗯!!!好像打不开了,没有关系,站长已为你准

    2025年7月4日
    2
  • spring任务调度SchedulerFactoryBean、CronTriggerFactoryBean(简单,明了)[通俗易懂]

    spring任务调度SchedulerFactoryBean、CronTriggerFactoryBean(简单,明了)[通俗易懂]http://img.blog.csdn.net/20160530121730543?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Centerok,在控制台打印一句话,每隔一秒打印一次: 两步得到上述效果:…

    2022年5月24日
    43

发表回复

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

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