原文链接:http://www.itjhwd.com/java_json/
代码
package com.itjh.mmp.util;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.apache.commons.collections.map.ListOrderedMap;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
/**
*
* 处理json的工具类.
* <br>本类为处理json的工具类
* @author slj
*/
public class JsonTools {
/**
*
* json转换list.
* <br>详细说明
* @param jsonStr json字符串
* @return
* @return List<Map<String,Object>> list
* @throws
* @author slj
* @date 2013年12月24日 下午1:08:03
*/
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;
}
/**
*
* json转换map.
* <br>详细说明
* @param jsonStr json字符串
* @return
* @return Map<String,Object> 集合
* @throws
* @author slj
*/
public static Map<String, Object> parseJSON2Map(String jsonStr){
ListOrderedMap map = new ListOrderedMap();
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;
}
/**
*
* 通过HTTP获取JSON数据.
* <br>通过HTTP获取JSON数据返回list
* @param url 链接
* @return
* @return List<Map<String,Object>> list
* @throws
* @author slj
*/
public static List<Map<String, Object>> getListByUrl(String url){
try {
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;
}
/**
*
* 通过HTTP获取JSON数据.
* <br>通过HTTP获取JSON数据返回map
* @param url 链接
* @return
* @return Map<String,Object> 集合
* @throws
* @author slj
*/
public static Map<String, Object> getMapByUrl(String url){
try {
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;
}
/**
*
* map转换json.
* <br>详细说明
* @param map 集合
* @return
* @return String json字符串
* @throws
* @author slj
*/
public static String mapToJson(Map<String, String> map) {
Set<String> keys = map.keySet();
String key = "";
String value = "";
StringBuffer jsonBuffer = new StringBuffer();
jsonBuffer.append("{");
for (Iterator<String> it = keys.iterator(); it.hasNext();) {
key = (String) it.next();
value = map.get(key);
jsonBuffer.append(key + ":" +"\""+ value+"\"");
if (it.hasNext()) {
jsonBuffer.append(",");
}
}
jsonBuffer.append("}");
return jsonBuffer.toString();
}
public static void main(String[] args) {
String url = "http://...";
List<Map<String,Object>> list = getListByUrl(url);
System.out.println(list);
}
}
小龙点评
经过实际测试,Map嵌套可以成功转换!
<script type="text/javascript">
$(function () {
$('pre.prettyprint code').each(function () {
var lines = $(this).text().split('\n').length;
var $numbering = $('<ul/>').addClass('pre-numbering').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i <= lines; i++) {
$numbering.append($('<li/>').text(i));
};
$numbering.fadeIn(1700);
});
});
</script>
分享到:
相关推荐
总的来说,`JAVA-JSON工具转换类`这个主题涵盖了JSON数据处理的核心部分,包括JSON的序列化和反序列化,以及数据类型的转换。通过`json-lib`和`ezmorph`这两个库,开发者可以轻松地在Java程序中处理JSON数据,而`...
如果JSON包含嵌套的对象或数组,它们会被转换为`Map`或`List`。 对于Map取值,你可以使用`get`方法: ```java String key = "exampleKey"; Object value = jsonData.get(key); ``` 如果值是另一个JSON对象或数组...
首先,`JsonUtil.java`很可能是这个功能的核心工具类,它包含了将Java对象转换为JSON字符串以及将JSON字符串解析为Java对象的方法。在没有第三方库如Gson或Jackson的情况下,这通常通过使用Java内置的`org.json`包来...
总结来说,Gson是Java开发中处理JSON数据的强大工具,无论是List还是Map格式的JSON,都能轻松地转换为相应的Java对象,便于进一步的数据操作和处理。了解并熟练掌握Gson的使用,对于提升Java开发效率具有显著的帮助...
【Java处理JSON格式数据的通用类】是一种在Java中处理JSON数据的标准方法,它能够方便地接收和返回JSON数据,解决开发过程中与JSON交互的问题。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛...
`google-gson`库不仅限于JSON到Map的转换,还支持许多其他功能,例如将Java对象序列化为JSON,反序列化Java对象,处理日期和时间,自定义序列化和反序列化行为等。通过深入学习`Gson`库的API和使用示例,可以更有效...
此外,JSON-Lib还支持将JSON对象与Java数组、List等集合类型相互转换。例如,如果你有一个JSON数组,可以这样处理: ```java String jsonArrayString = "[{\"name\":\"Alice\",\"age\":25},{\"name\":\"Bob\",\"age...
Java与JSON对象间转换的知识点涉及到Java中对象与JSON格式数据之间的互相转换方法,这是在Web开发和数据交互中常见的需求。在Java中处理JSON数据主要依靠一些第三方库,json-lib是其中之一,它能够将Java对象转换成...
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于前后端数据传输。...在实际开发中,根据项目的依赖和需求,选择合适的JSON库并利用其提供的工具类,可以有效地处理JSON数据。
《JsonUtils:强大的Json转换工具类》 在Java开发中,JSON作为一种轻量级的数据交换格式,被广泛用于服务器与客户端之间的数据传输。为了方便开发者处理JSON格式的数据,出现了许多库,如Jackson、Gson、Fastjson等...
本文档将详细介绍一个用于Java中处理JSON数据的通用类——`JsonUtil`,该类封装了一系列方法用于实现JSON与Java对象之间的转换。 #### 类结构及包引入 `JsonUtil`位于`com.linghui.common.util`包下。为了实现JSON...
JSON(JavaScript Object ...这个库不仅提供了基本的转换功能,还支持自定义转换规则和处理复杂的数据结构,是 Java 开发中的实用工具。在实际开发中,根据具体需求选择合适的方法进行 JSON 处理,能显著提高开发效率。
在Java中,json-lib是一个非常实用的库,它允许我们方便地进行JSON(JavaScript Object Notation)对象与Java对象之间的转换。JSON是一种轻量级的数据交换格式,广泛用于前后端数据交互。以下将详细介绍如何利用json...
综上所述,"json格式转换工具类"涉及到的是如何在Java环境中高效、安全地进行JSON数据的序列化与反序列化,以及自定义转换规则和处理潜在的安全风险。选择合适的工具库,并理解其基本用法,是提升开发效率的关键。
3. **集合处理**: JSONLib支持List、Set、Map等集合类型的转换,方便处理复杂的数据结构。 4. **XML与JSON互转**: JSONLib还提供了XML和JSON之间的转换功能,使得在两种格式间切换更加便捷。 5. **自定义序列化和反...
本文将详细介绍一个用于处理JSON数据的Java工具类——`JsonUtil`。 #### 二、包与导入 此工具类位于`com.baiyyy.polabs.util.json`包下,为了确保能够正确地处理JSON数据,它引入了多个必要的Java类和第三方库中的...
此外,`json-lib`还支持与各种Java集合和类型进行互操作,如List、Set、Map等,这使得在JSON和Java对象之间进行转换变得非常直观。对于复杂的JSON结构,如嵌套的JSON对象或数组,`json-lib`也提供了相应的API来处理...
4. **复杂JSON处理**:对于包含嵌套结构或复杂关系的JSON,可以使用`JsonNode`类(如Jackson)进行解析和操作。`JsonNode`是一个抽象类,表示JSON结构中的任何节点,可以遍历整个JSON树。 5. **JSONPath和JSON...
在Android开发中,数据交换和序列化经常使用JSON(JavaScript Object Notation)格式,因为它的轻量级、易读易写以及广泛支持。本篇文章将详细介绍如何使用阿里巴巴的Fastjson库进行JSON操作,并封装成一个方便使用...