net.sf.json

需要的Maven依赖如下:

<dependency>    		    
    <groupId>net.sf.json-lib</groupId>    		    
    <artifactId>json-lib</artifactId>    		    
    <version>2.4</version>    		   
    <classifier>jdk15</classifier> 
    <!-- json-lib提供了两个jdk版本的实现, json-lib-2.4-jdk13.jar和json-lib-2.4-jdk15.jar -->
</dependency>

相关的Jar包如下:

json-lib是Java之前常用的一个Json库,最新的版本为2010年更新的2.4。

json-lib 在通过字符串解析每一个 Json 对象时,会对当前解析位置到字符串末尾进行 substring 操作,由于 JDK7 及以上的 substring 会完整拷贝截取后的内容,所以当遇到较大的 Json 数据并且含有较多对象时,会进行大量的字符数组复制操作,导致了大量的 CPU 和内存消耗,甚至严重的 Full GC 问题。

net.sf.json.JSONObject转成HashMap

package com.cn.demo.controller;

import java.util.HashMap;
import java.util.Iterator;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import net.sf.json.JSONObject;

@RestController
@RequestMapping("/api")
public class TestController {
	@SuppressWarnings("unchecked")
	public static HashMap<String, String> JsonToMap(JSONObject jsonObject) {
		HashMap<String, String> map = new HashMap<String, String>();
		Iterator<String> iterator = jsonObject.keys();
		String key = null;
		String value = null;
		while (iterator.hasNext()) {
			key = iterator.next();
			value = jsonObject.getString(key);
			map.put(key, value);
		}
		return map;
	}
	
	@RequestMapping("/jsonToMap")
	public HashMap<String, String> transMap(){
		JSONObject jsonObject = new JSONObject();
		jsonObject.put("id", "129");
		jsonObject.put("name", "lmq");
		jsonObject.put("age", "21");
		System.out.println(jsonObject);
		HashMap<String, String> map = JsonToMap(jsonObject);
		System.out.println(map);
                return map;
	}
}

控制台输出:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值