JAVA中json转Map,jsonArray转List集合,List集合转json

JAVA中json转Map,jsonArray转List集合,List集合转json在写代码时,经常会遇到各转类型之间互相转换,比如json转换为Map,jsonArray转List集合,List集合转json,现在整理一个工具类,方便日后查阅。importjava.util.HashMap;importjava.util.Iterator;importjava.util.List;importjava.util.Map;importorg.apac

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

在写代码时,经常会遇到各转类型之间互相转换,比如json转换为Map,jsonArray转List集合,List集合转json,现在整理一个工具类,方便日后查阅。

import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;


import org.apache.commons.lang.StringUtils;
import org.zgr.pack.entity.test.TestJsonToList;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;


public class Util {
	    //json字符串转换为MAP
		public static Map jsonStrToMap(String s) {
			Map map = new HashMap();
			//注意这里JSONObject引入的是net.sf.json
			net.sf.json.JSONObject json = net.sf.json.JSONObject.fromObject(s);
			Iterator keys = json.keys();
			while (keys.hasNext()) {
				String key = (String) keys.next();
				String value = json.get(key).toString();
				if (value.startsWith("{") && value.endsWith("}")) {
					map.put(key, jsonStrToMap(value));
				} else {
					map.put(key, value);
				}

			}
			return map;
		}
		
		// 将jsonArray字符串转换成List集合
		public static List jsonToList(String json, Class beanClass) {
			if (!StringUtils.isBlank(json)) {
				//这里的JSONObject引入的是 com.alibaba.fastjson.JSONObject;
				return JSONObject.parseArray(json, beanClass);
			} else {
				return null;
			}
		}
		
		//List集合转换为json
		public static JSON listToJson(List list) {
			JSON json=(JSON) JSON.toJSON(list);
			return json;
		}
		
		
		public static void main(String[] args) {
			
			System.out.println("---------------------json字符串转换为MAP---------------------");
			JSONObject jsonObject=new JSONObject();
			jsonObject.put("abc", 123);
			jsonObject.put("def", 456);
			System.out.println("A==========json====="+jsonObject);
			Map map=Util.jsonStrToMap(jsonObject.toString());
			System.out.println("B==========def======"+map.get("def"));
			
			
			System.out.println("---------------------将jsonArray字符串转换成List集合---------------------");
			String str="[{\"year\":\"2015\",\"month\":10,\"count\":47},{\"year\":2017,\"month\":12,\"count\":4}]";
			//这里需要指定泛型,我们建立一个实体类TestJsonToList
			List<TestJsonToList> list=Util.jsonToList(str, TestJsonToList.class);
			System.out.println("C==========取list第二个元素的year====="+list.get(1).getYear());
			
			
			System.out.println("---------------------将list集合转换成json---------------------");
			//这里的JSONObject引入的是 com.alibaba.fastjson.JSONObject;
			JSON json=Util.listToJson(list);
			System.out.println("D==========json====="+json);
		}
}

实体类

public class TestJsonToList {
	private String year;      //年
    private String month;     //月
    private String count;     //数据
	public String getMonth() {
		return month;
	}
	public void setMonth(String month) {
		this.month = month;
	}
	public String getYear() {
		return year;
	}
	public void setYear(String year) {
		this.year = year;
	}
	public String getCount() {
		return count;
	}
	public void setCount(String count) {
		this.count = count;
	}
	
    //构造方法
    public TestJsonToList(String year, String month, String count) {  
        this.year = year;  
        this.month = month;  
        this.count = count;  
    }  
    //默认构造方法
    public TestJsonToList() {  
      
    }  
}


控制吧输出结果:


JAVA中json转Map,jsonArray转List集合,List集合转json

json转List集合,和List集合转json时需要注意,使用的是阿里的fastJson.jar包,不要引错了,Maven项目对应引入:

             

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

需要jar包,可去这里下载:

http://download.csdn.net/download/weixin_33446857/10225429

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

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

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

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

(0)
blank

相关推荐

  • 2022,VSCode 前端插件推荐(摸鱼必备)

    2022,VSCode 前端插件推荐(摸鱼必备)点击上方“蓝色字体”,选择“设为星标”做积极向上的前端人!前言推荐一波前端开发必备插件,绝对可以提高你的生产力,剩下来的时间来mo鱼,岂不美哉开发综合推荐别名路径跳转插件名:别名路径跳转使用说明:别名路径跳转插件,支持任何项目,使用场景:当你在开发页面时,想点击别名路径导入的组件时(演示如下)配置说明下载后只需自定义配置一些自己常用的别名路径即可//文件名别名…

  • JDK1.8 中的双冒号::是什么语法?

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 作者:Java实用技术 www.toutiao.com/i6807719546158318092/ 简洁 方法引用 …

  • 学习笔记——pycharm修改编码方式

    学习笔记——pycharm修改编码方式pycharm编辑器修改编码方式,防止乱码。工具/原料 pycharm编辑器 方法 打开编辑器找到File->settings,我们将在这里修改编码方式。 点击settings会弹出设置界面我们将在设置界面设置我们的编码方式。 找到settings->Editor->FileEncondings,FileEncondings就是我们要修改编码方式的地方。我们点击会出现对应的修改窗口。 点击F

  • 亿图图示用户名和密钥激活码【最新永久激活】2022.02.13

    (亿图图示用户名和密钥激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

  • macos dock栏_苹果mac使用技巧

    macos dock栏_苹果mac使用技巧Dock栏就是Mac电脑屏幕下方的那一排快捷键,我们可以把自己常用的程序放到Dock上面,这样可以帮助我们快速的打开自己想要打开的文件和程序,默认情况下,OSX的Dock置于屏幕的底部。当你第一次进入MacOSX的桌面,Dock中内置了许多应用程序,怎么用好它?其实,我们不仅可以自定义Dock中显示的内容,而且你还可以调整Dock的大小、位置等等,下面给大家介绍几个关于Dock栏使用技巧,让大家使用Mac电脑更加得心应手。一、添加应用程序,文件夹和文件到Dock1.打开你的

  • PS2手柄按键测试

    PS2手柄按键测试arduino的PS2手柄控制测试:#include<PS2X_lib.h>//电机引脚#definePWMA12//A电机转速#defineDIRA134#defineDIRA235//A电机方向#definePWMB8//B电机转速#defineDIRB137#defineDIRB236//B电机方向#def…

发表回复

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

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