开发:随笔记录之Json字符串与List、HashMap对象的转换
作者:僵尸粉丝鸡蛋_556 | 来源:互联网 | 2023-05-17 12:43
importjava.util.ArrayList;importjava.util.HashMap;importjava.util.List;importjava.util.Map;impor
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
import net.sf.json.util.JSONUtils;
public class JsonParser {
/**
* json字符串 转成 map
*
* @param jsonStr
* @return
* @throws Exception
*/
public static HashMap parse(String jsonStr) {
if (jsOnStr== null || "".equals(jsonStr)) { return null; }
HashMap retMap = null;
try {
retMap = new HashMap();
JSONObject json = JSONObject.fromObject(jsonStr);
Map tmpMap = (Map) JSONObject
.toBean(json, Map.class);
for (Map.Entry entry : tmpMap.entrySet()) {
JsonValue tmp = parseRec(entry.getValue(), 0);
retMap.put(entry.getKey(), tmp);
}
}
catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return retMap;
}
/**
* json字符串 转成 List
*
* @param jsonStr
* @return
* @throws Exception
*/
public static List> parseList(String jsonStr) {
if (jsOnStr== null || "".equals(jsonStr)) { return null; }
List> retList = new ArrayList>();
JSONArray data = JSONArray.fromObject(jsonStr);
for (int i = 0; i
HashMap retMap = new HashMap();
JSONObject json = (JSONObject) data.get(i);
Map tmpMap = (Map) JSONObject
.toBean(json, Map.class);
for (Map.Entry entry : tmpMap.entrySet()) {
JsonValue tmp = parseRec(entry.getValue(), 0);
retMap.put(entry.getKey(), tmp);
}
retList.add(retMap);
}
return retList;
}
/**
* HashMap map 转成 json字符串
*
* @param jsonStr
* @return
* @throws Exception
*/
public static String parse(HashMap map) {
HashMap retMap = new HashMap();
for (Map.Entry entry : map.entrySet()) {
Object tmp = parseJsonValueRec(entry.getValue(), 0);
retMap.put(entry.getKey(), tmp);
}
JsonConfig jc = new JsonConfig();
return JSONObject.fromObject(retMap, jc).toString();
}
/**
* List> list 转成 json字符串
*
* @param jsonStr
* @return
* @throws Exception
*/
public static String parse(List> list) {
List> tmpList = new ArrayList>();
for (HashMap map : list) {
HashMap retMap = new HashMap();
for (Map.Entry entry : map.entrySet()) {
Object tmp = parseJsonValueRec(entry.getValue(), 0);
retMap.put(entry.getKey(), tmp);
}
tmpList.add(retMap);
}
JSONArray json = new JSONArray();
json.addAll(tmpList);
return json.toString();
}
/**
* 构建json
*
* @param map
* @return
*/
public static String parse(Map map) {
JsonConfig jc = new JsonConfig();
return JSONObject.fromObject(map, jc).toString();
}
对了,json的版本我用的是json-lib-2.4-jdk15.jar
推荐阅读
-
本文介绍了在实现了System.Collections.Generic.IDictionary接口的泛型字典类中如何使用foreach循环来枚举字典中的键值对。同时还讨论了非泛型字典类和泛型字典类在foreach循环中使用的不同类型,以及使用KeyValuePair类型在foreach循环中枚举泛型字典类的优势。阅读本文可以帮助您更好地理解泛型字典类的使用和性能优化。 ...
[详细]
蜡笔小新 2023-12-09 09:22:34
-
The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ...
[详细]
蜡笔小新 2023-12-14 19:58:05
-
-
本文介绍了模板引擎StringTemplate的使用方法和特点,包括强制Model和View的分离、Lazy-Evaluation、Recursive enable等。同时,还介绍了StringTemplate语法中的属性和普通字符的使用方法,并提供了向模板填充属性的示例代码。 ...
[详细]
蜡笔小新 2023-12-11 21:45:03
-
本文整理了Java面试中常见的问题及相关概念的解析,包括HashMap中为什么重写equals还要重写hashcode、map的分类和常见情况、final关键字的用法、Synchronized和lock的区别、volatile的介绍、Syncronized锁的作用、构造函数和构造函数重载的概念、方法覆盖和方法重载的区别、反射获取和设置对象私有字段的值的方法、通过反射创建对象的方式以及内部类的详解。 ...
[详细]
蜡笔小新 2023-12-10 22:17:08
-
HashTable与ConcurrentHashMap均可实现HashMap的功能,对外提供了键值对存储的数据结构。但是在内部结构及实现上有何区别,性能上的差异到底在哪里又是如何导致的 ...
[详细]
蜡笔小新 2023-09-14 08:45:47
-
缓存这个东西就是为了提高运行速度的,由于缓存是在寸土寸金的内存里面,不是在硬盘里面,所以容量是很有限的。LRU这个算法就是把最近一次使用时间离现在时间最远的数据删除掉。先说说List:每 ...
[详细]
蜡笔小新 2023-09-10 10:48:58
-
本篇文章给大家分享的是有关Java中怎么对HashMap按键值排序,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话 ...
[详细]
蜡笔小新 2023-09-09 14:01:50
-
将学生对象和学生的归属地通过键与值存储到map集合中。importjava.util.HashMap;importjava.util.Iterator;importjava.uti ...
[详细]
蜡笔小新 2023-09-09 04:43:44
-
本文介绍了JDK源码学习之HashTable(附带面试题)的学习笔记,包括HashTable的定义、数据类型、与HashMap的关系和区别。文章提供了干货,并附带了其他相关主题的学习笔记。 ...
[详细]
蜡笔小新 2023-12-12 13:05:17
-
本文介绍了一个适用于PHP应用快速接入TRX和TRC20数字资产的开发包,该开发包支持使用自有Tron区块链节点的应用场景,也支持基于Tron官方公共API服务的轻量级部署场景。提供的功能包括生成地址、验证地址、查询余额、交易转账、查询最新区块和查询交易信息等。详细信息可参考tron-php的Github地址:https://github.com/Fenguoz/tron-php。 ...
[详细]
蜡笔小新 2023-12-11 17:02:09
-
本文讨论了微软的STL容器类是否线程安全。根据MSDN的回答,STL容器类包括vector、deque、list、queue、stack、priority_queue、valarray、map、hash_map、multimap、hash_multimap、set、hash_set、multiset、hash_multiset、basic_string和bitset。对于单个对象来说,多个线程同时读取是安全的。但如果一个线程正在写入一个对象,那么所有的读写操作都需要进行同步。 ...
[详细]
蜡笔小新 2023-12-11 11:53:23
-
HashMap:键值对(key-value):通过对象来对对象进行索引,用来索引的对象叫做key,其对应的对象叫做value.默认是1:1关系:存在则覆盖,当key已经存在,则利用新的va ...
[详细]
蜡笔小新 2023-10-10 14:29:36
-
Java集合详解5:深入理解LinkedHashMap和LRU缓存今天我们来深入探索一下LinkedHashMap的底层原理,并且使用linkedhashmap来实现LRU缓存。具体代码在我的 ...
[详细]
蜡笔小新 2023-09-23 10:53:28
-
转载自:http:www.blogjava.netCarpenterLeearchive20160427430268.html总体介绍之所以把HashSet和HashMa ...
[详细]
蜡笔小新 2023-09-10 22:23:41
-
***功能:排序*privatestaticvoidoutputRegionStatistics(HashMap<String,Integer>regionMap){ ...
[详细]
蜡笔小新 2023-09-09 10:09:25
-
僵尸粉丝鸡蛋_556
这个家伙很懒,什么也没留下!