直接上代码:
//json字符串转成map
public static Map<String, Object> StringToMap(String strInput) {
if (strInput == null) {
return null;
}
JsonNode jsonNode = null;
try {
ObjectMapper objectMapper = new ObjectMapper();
jsonNode = objectMapper.readTree(strInput);//将json字符串转成jsonNode
} catch (IOException ex) {
System.out.println("json数据格式异常");
//Logger.getLogger(NewClass.class.getName()).log(Level.SEVERE, null, ex);
return null;
}
return JsonToMap(jsonNode);
}
//jsonNode转成map
public static Map<String, Object> JsonToMap(JsonNode jsonNode) {
if (jsonNode == null) {
return null;
}
Iterator<String> paramsIterator = jsonNode.getFieldNames();//获得一个迭代器 存储jsonNode的所有key
Map<String, Object> map = new HashMap<String, Object>();
while (paramsIterator.hasNext()) {
String paramName = paramsIterator.next();//得到一个key
JsonNode jsonSonNode = jsonNode.get(paramName);
if (jsonSonNode.isInt()) {//如果是int类型数据
map.put(paramName, jsonSonNode.getIntValue());
} else if (jsonSonNode.isLong()) {//如果是long类型数据
map.put(paramName, jsonSonNode.getLongValue());
} else if (jsonSonNode.isTextual()) {//如果是文本
map.put(paramName, jsonSonNode.getValueAsText());
} else if (jsonSonNode.isObject()) {//如果是对象
Map<String, Object> tempMap = JsonToMap(jsonSonNode);//递归调用
if (tempMap != null) {
map.put(paramName, tempMap);
}
} else if (jsonSonNode.isArray()) {//如果是数组
Iterator<JsonNode> nodeIterator = jsonSonNode.getElements();//获取数组里的值
ArrayList<Map<String, Object>> tempMaplist = new ArrayList<Map<String, Object>>();
while (nodeIterator.hasNext()) {
JsonNode tempJsonNode = nodeIterator.next();//得到数组里的一个对象
Map<String, Object> tempM = JsonToMap(tempJsonNode);//递归调用
if (tempM != null) {
tempMaplist.add(tempM);
}
}
map.put(paramName, tempMap);
}
}
return map;
}
分享到:
相关推荐
在Java中,将JSON字符串转换为Map或List是常见的操作,这在处理服务器返回的数据或者进行数据序列化时非常有用。 JSON字符串的结构主要包括对象(键值对的集合,用花括号{}包围)和数组(有序元素的集合,用方括号...
首先,让我们详细了解Map对象转JSON字符串。Map是一种键值对的数据结构,它允许我们通过一个键(key)来访问对应的值(value)。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于存储和传输...
本文将详细介绍如何将JSON字符串直接转换为Java对象,特别是涉及到多层List集合的情况。在本例中,我们将使用`net.sf.json.JSONObject`类来实现这一功能。 首先,确保你的项目中已经引入了必要的库。在使用`...
在给定的“利用java反射将json字符串转成对象”的主题中,我们将深入探讨如何借助反射机制将JSON字符串转换为Java对象。 首先,我们需要了解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人...
7. **序列化与反序列化**:除了解析JSON字符串,C++还可以将C++对象序列化为JSON格式,这在数据存储或网络传输中非常有用。例如,`j.dump()`可以将JSON对象转换为字符串。 8. **自定义类型与JSON**:nlohmann/json...
首先,要了解的是,JSON字符串是文本格式,而Map是Java中的接口,表示键值对的集合。因此,将JSON字符串转换为Map对象的过程实质上是字符串解析的过程。这一过程需要使用到专门处理JSON的库,如org.json,或者更常用...
实现Object对象与Json字符串的互转"深入探讨了如何使用`JSONObject`来处理这种转换。 首先,我们需要了解`JSONObject`的基本用法。`JSONObject`可以从一个Java对象创建,也可以解析为一个JSON字符串。例如,我们有...
1. **JSON字符串转Java对象** 使用`json-lib`,我们可以将JSON字符串解析为JavaBean、HashMap、ArrayList等。例如,假设我们有一个JSON字符串`{"name":"John", "age":30}`,可以这样转换: ```java String json...
### JSON字符串转Java对象 以下是一个简单的例子,展示如何将JSON字符串转换为Java对象: ```java class User { private String name; private int age; // getters and setters... } String jsonString = "{...
可能包含的方法有`toJson()`(将Java对象转换为JSON字符串)、`fromJson()`(将JSON字符串解析为Java对象)、`convertToMap()`(将JSON字符串转换为Map)以及`convertToList()`(将JSON字符串转换为List)等。...
例如,`json-lib`库提供了`JsonUtil`类,可以将JSON字符串转换为Java集合对象,如List或Map。 2. **转换数据结构**:将解析后的JSON对象或数组转化为适合表格展示的二维数据结构,比如二维数组或List嵌套List。 3....
JSON官网上推荐的使用java解析json的类库,官网下载后的是未编译打包的java文件,这是我打包后的东东,使用时直接添加进Build path即可,简单实用……
Gson库提供了一个`Gson.fromJson()`方法,能够将JSON字符串解析成一个Map对象。这个过程涉及以下几个步骤: 1. **创建Gson对象**:首先,我们需要创建一个`Gson`实例,这是整个转换的核心。 ```java Gson gson = ...
随着 JSON 数据交换格式的广泛应用,Java Web 程序员需要学习如何将 Java 对象转换为 JSON 字符串。在本文中,我们将总结 Java Web 程序实现返回 JSON 字符串的方法,并介绍一种简单易用的 JSON 库。 Java 中的 ...
除了解析JSON字符串到Java对象,这两个库还支持将Java对象转换为JSON字符串,以及解析JSON到Map或List等数据结构。 3. **其他库** 除了Jackson和Gson,还有其他的JSON处理库,如org.json(提供简单的JSON工具类)...
如果你已经有了一个Map对象,你可以创建一个`JSONObject`,然后使用`toJSONString()`方法将其转换为JSON字符串。例如: ```java Map, Object> map = new HashMap(); map.put("name", "张三"); map.put("age", ...
本文将详细探讨如何将Map转换为JSON字符串。 首先,让我们理解一下JSON.stringify()方法。这个方法是JavaScript内置的,用于将JavaScript值(包括对象和数组)转换为JSON字符串。其基本语法如下: ```javascript ...
java代码-使用java解决Map转JSON字符串的源代码 ——学习参考资料:仅用于个人学习使用!
例如,在将 JSON 字符串转换为 Map 时,如果 JSON 中包含一个非常大的数字,例如 12345678901234567890,这个数字在 Java 中可能会被表示为科学计数法的形式,例如 1.2345678901234567E22。这可能会导致数据的精度...
接受对象转换为JSON数据格式并且作为字符串输出,map转换json,list转换json