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

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

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

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


相关推荐

  • 三角函数中的正弦、余弦、正切、余切、正割、余割函数性质及常用公式

    三角函数中的正弦、余弦、正切、余切、正割、余割函数性质及常用公式三角函数三角函数包括正弦 余弦 正切 余切 正割 余割函数 0 基础知识正弦 Sine sinA CB CA 余弦 Cosine cosA AB CA 正切 Tangent tanA CB BA 余切 Cotangent cotA 1 tanA BA CB 正割 Secant secA 1 cosA CA AB 余割 Cosecant cosecA 1 sinA CA CB1y sinx2y cosx

    2025年8月28日
    3
  • Python缩进规则「建议收藏」

    传统的c、c++、Java都是使用花括号{}来决定作用域的范围,并且会在编程过程中自动对缩进进行管理,但是在python中,则是使用缩进来决定代码的范围,有时候缩进需要根据代码来手动调控,此时如果完全依赖python自动缩进,可能会出现问题。例如://计算数组和,正确格式defsum_list(alist):sum_temp=0foriinalist:sum_temp+=ireturnsum_temp#此处需要手动调节缩进print(s

    2022年4月8日
    43
  • virsh强制关闭虚拟机_kvm创建虚拟机

    virsh强制关闭虚拟机_kvm创建虚拟机virsh可以通过reboot、shutdown来重启或关闭对应的虚拟机。由于其原理是host通过发送acpi指令来控制虚拟机的电源,如果guest系统没有安装acpi服务器或该服务器没有启动,那么虚拟机将不会重启或关闭,那么只有使用destroy来强制关闭。安装acpid服务centos系统yuminstallacpidubuntu系统apt-getinstallacp…

    2022年8月11日
    8
  • linux用命令dpkg,Linux下dpkg命令常用方法整理「建议收藏」

    linux用命令dpkg,Linux下dpkg命令常用方法整理「建议收藏」如果ubuntu要安装新软件,已有deb安装包(例如:iptux.deb),但是无法登录到桌面环境。那该怎么安装?答案是:使用dpkg命令。dpkg命令常用格式如下:代码如下:sudodpkg-Iiptux.deb#查看iptux.deb软件包的详细信息,包括软件名称、版本以及大小等(其中-I等价于–info)代码如下:sudodpkg-ciptux.deb#查看iptux.deb软件…

    2022年5月21日
    57
  • 开机就提示“请安装TCP/IP协议,error=10106”的解决的方法

    开机就提示“请安装TCP/IP协议,error=10106”的解决的方法

    2021年11月14日
    95
  • 惠普电脑有电脑管家吗_电脑管家检测硬件就蓝屏

    惠普电脑有电脑管家吗_电脑管家检测硬件就蓝屏据海外媒体WindowsLatest的报道,大量的Windows10用户的设备最近频繁出现蓝屏,多家硬件设备厂商均中招。联想电脑管家安全团队已证实暂不涉及联想设备的国内用户。同时提醒广大国内用户,暂停近期微软发布的任何更新业务(包括暂停通过Vantage应用程序进行BIOS更新),等待微软官方给出修复补丁。据悉该蓝屏问题是由于近期的一次更新造成,蓝屏(BSOD)错误将会阻止windows10设备的…

    2022年8月13日
    13

发表回复

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

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