package digu.pendant.util; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.net.URL; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import net.sf.json.JSONArray; import net.sf.json.JSONObject; public class PandantTools { public static List<Map<String, Object>> parseJSON2List(String jsonStr){ JSONArray jsonArr = JSONArray.fromObject(jsonStr); List<Map<String, Object>> list = new ArrayList<Map<String,Object>>(); Iterator<JSONObject> it = jsonArr.iterator(); while(it.hasNext()){ JSONObject json2 = it.next(); list.add(parseJSON2Map(json2.toString())); } return list; } public static Map<String, Object> parseJSON2Map(String jsonStr){ Map<String, Object> map = new HashMap<String, Object>(); //最外层解析 JSONObject json = JSONObject.fromObject(jsonStr); for(Object k : json.keySet()){ Object v = json.get(k); //如果内层还是数组的话,继续解析 if(v instanceof JSONArray){ List<Map<String, Object>> list = new ArrayList<Map<String,Object>>(); Iterator<JSONObject> it = ((JSONArray)v).iterator(); while(it.hasNext()){ JSONObject json2 = it.next(); list.add(parseJSON2Map(json2.toString())); } map.put(k.toString(), list); } else { map.put(k.toString(), v); } } return map; } public static List<Map<String, Object>> getListByUrl(String url){ try { //通过HTTP获取JSON数据 InputStream in = new URL(url).openStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(in)); StringBuilder sb = new StringBuilder(); String line; while((line=reader.readLine())!=null){ sb.append(line); } return parseJSON2List(sb.toString()); } catch (Exception e) { e.printStackTrace(); } return null; } public static Map<String, Object> getMapByUrl(String url){ try { //通过HTTP获取JSON数据 InputStream in = new URL(url).openStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(in)); StringBuilder sb = new StringBuilder(); String line; while((line=reader.readLine())!=null){ sb.append(line); } return parseJSON2Map(sb.toString()); } catch (Exception e) { e.printStackTrace(); } return null; } //test public static void main(String[] args) { String url = "http://..."; List<Map<String,Object>> list = getListByUrl(url); System.out.println(list); } }
相关推荐
json 转换为 map 在 Java 中的实现 json(JavaScript Object Notation)是一种轻量级的数据交换格式,它广泛应用于 web 开发、移动应用开发和微服务架构中。Java 是一种流行的编程语言,广泛应用于企业级应用开发、...
Map, Object> map = gson.fromJson(jsonString, Map.class); ``` 转换成List则需要指定List元素类型: ```java import com.google.gson.Gson; import java.util.List; String jsonString = "[{\"key\":\...
"对象转换成JSON和Map"是一个核心话题,特别是在Java编程语言中,因为JSON(JavaScript Object Notation)是网络通信中广泛使用的轻量级数据交换格式,而Map则是一种通用的数据结构,用于存储键值对。下面我们将深入...
在Java中,我们经常需要将JSON字符串与Map对象互相转换,以便处理数据。本篇文章将详细探讨使用Jackson库和json-lib库这两种流行的方式进行转换,并分析它们之间的差异。 **一、Jackson库** Jackson是Java开发的高...
json工具类,json转为对象,json转map。对象转json。便于使用
在Java中,将JSON对象转换为Map键值对是一种常见的数据处理方式。在本篇文章中,我们将学习如何利用Java代码将一个JSON字符串转换成一个Map对象,同时仅保留叶节点的数据。为了实现这个功能,本文使用了org.json库来...
list.add(parseJSON2Map(json2.toString())); } ``` 最后,该方法将 List 返回: ```java return list; ``` 结论 在本文中,我们详细介绍了如何使用 Java 和 Spring Boot 将 JSON 转换为 List。我们首先讨论了 ...
多层嵌套json转换为Map再转换为单层 最近在实习的时候,需要将多层嵌套的json转换为单层的json。并且把json进行格式化。于是参照网上的网上的方法使用谷歌的gson利用递归的实现了多层json转换为单层的json。如 {...
描述中提到了一个实例,也就是使用Jackson库将JSON字符串转换为Java对象(Map),然后使用org.json库读取JSON数组。实例中说明了遇到的困难,即在使用Map读取第一级数据之后,尝试读取数组中的特定值时遇到了问题,...
在这个场景中,我们关注的是"Map转JSON"和"mapתJSON"这两个文件名,它们可能指的是包含这些转换功能的jar包。通常,这些库的jar包会包含一系列类和方法,用于将Java对象(如Map)转换为JSON字符串,反之亦然。 1. ...
1,先将接口返回的JSON,用gson.tojson(map)方法,将LinkedTreeMap对象转成String。 2,再通过gson.fromjson(string,type)方法,将String转成LinkedTreeMap。用到了Type type=new TypeToken(){}.getType; 3,再将...
6. **反序列化**: 除了将Java对象转为JSON,Jackson还支持将JSON反序列化回Java对象: ```java YourClass yourObject = mapper.readValue(jsonString, YourClass.class); ``` 7. **Ajax交互**: AJAX...
在存储的时候想把数据列表存储成json string,但是在代码使用的时候又觉得用map更快更方便。这个时候就需要相互转换,下面是一个转换的例子。 // Test for json and map converting package main import ( ...
// 将User对象转为JSON字符串 User deserializedUser = gson.fromJson(jsonString, User.class); // 将JSON字符串转回User对象 ``` 其次,我们讨论JSON与Array之间的操作。当需要处理数组时,Gson同样提供了方便...
标题中的“首字母大写的json串转为javabean实例”意味着我们需要处理JSON字符串中属性名首字母大写的情况。在Java中,通常遵循驼峰命名法(Camel Case),即每个单词的首字母大写,而JSON标准则通常使用下划线命名法...
除了基本类型和简单对象,Jackson还支持复杂类型的转换,如集合、Map以及自定义类型映射。 3. **注解驱动的序列化与反序列化** Jackson提供了丰富的注解,如`@JsonProperty`、`@JsonIgnore`、`@JsonInclude`等,...
可能包含的方法有`toJson()`(将Java对象转换为JSON字符串)、`fromJson()`(将JSON字符串解析为Java对象)、`convertToMap()`(将JSON字符串转换为Map)以及`convertToList()`(将JSON字符串转换为List)等。...
在这个示例中,我们将重点讲解如何使用Gson将Map对象转换为JSON字符串。 首先,确保你的项目已经正确地引入了Gson库。在Maven项目中,可以在pom.xml文件中添加以下依赖: ```xml <groupId>...
页面向后台action传递一个json字符串,需要将json字符串转换成Map对象 public Map<String> toMap(Object object) { Map<String> data = new HashMap(); // 将json字符串转换成jsonObject JSONObject jsonObject...
1. **解析JSON**:使用JSON库,如JavaScript的`JSON.parse()`或Java的`org.json`库,将JSON字符串解析成数据结构,如JavaScript对象或Java的Map对象。 2. **数据预处理**:如果JSON包含复杂结构,例如嵌套数组或...