JSON-Lib方式

/**
  * 函数注释:parseJSON2Map()<br>
  * 用途:该方法用于json数据转换为<Map<String, Object>
  * @param jsonStr
  * @return
  */
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;  
}  
/**
  * 函数注释:parseJSON2MapString()<br>
  * 用途:该方法用于json数据转换为<Map<String, String><br>
  */
public static Map<String, String> parseJSON2MapString(String jsonStr){  
    Map<String, String> map = new HashMap<String, String>();  
    //最外层解析  
    JSONObject json = JSONObject.fromObject(jsonStr);  
    for(Object k : json.keySet()){ 
        Object v = json.get(k);   
        if(null!=v){
         map.put(k.toString(), v.toString());  
        }
    }  
    return map;  
}

Jackson方式

/**
 * Map转换JSON
 * @param map
 * @return
 * @throws Exception
 */
public static String mapConvert2JSON(Map map) throws Exception{
    ObjectMapper mapper = new ObjectMapper();
    return mapper.writeValueAsString(map);
} /**
 * JSON 转换 Map
 * @param json
 */
public static Map readJson2Map(String json) throws Exception{
    ObjectMapper objectMapper = new ObjectMapper();
    Map<String, Map<String, Object>> maps = objectMapper.readValue(json, Map.class);
    /*Set<String> key = maps.keySet();
    Iterator<String> iter = key.iterator();
    while (iter.hasNext()) {
        String field = iter.next();
        System.out.println(field + ":" + maps.get(field));
    }*/
    return maps;
}
本段代码来自 http://www.ibloger.net/article/2470.html

Map和JSON的互相转换的更多相关文章

  1. map和json之间的转换

    Action中在session中存放了一个map<String,Object>,跳转到a.jsp,a.jsp通过form提交到BAction,BAction可从session中获得map值 ...

  2. Java处理JSON的工具类(List、Map和JSON之间的转换)——依赖jsonlib支持Map嵌套

    原文链接:http://www.itjhwd.com/java_json/ 代码 package com.itjh.mmp.util; import java.io.BufferedReader; i ...

  3. Go语言高级特性总结——Struct、Map与JSON之间的转化

    Struct与Map之间互相转换 // Struct2Map convert struct to map func Struct2Map(st interface{}) map[string]inte ...

  4. [转]Json字符串和map和HashMap之间的转换

    需要导入alibaba.fastJsonmaven中的依赖为 <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --> ...

  5. 将java中Map对象转为有相同属性的类对象(json作为中间转换)

    java中Map对象转为有相同属性的类对象(json作为中间转换) 准备好json转换工具类 public class JsonUtil { private static ObjectMapper o ...

  6. ES6中Json、String、Map、Object之间的转换

    /** *字符串转json * */ static stringToJson(data){ return JSON.parse(data); } /** *json转字符串 */ static jso ...

  7. Java中把对象、对象bean、list集合、对象数组、Map和Set以及字符串转换成Json

    对象转换为Json 对象bean转换为Json List集合转换为Json 对象数组转换为Json Map集合转换为Json Set集合转为Json 字符串转换为Json 把Java对常用的一些数据转 ...

  8. java bean、List、数组、map和Json的相互转化

    工程 json包为  代码 package com.my.json; public class ChildBean { private String childName; private String ...

  9. Android项目开发全程(四)-- 将网络返回的json字符串轻松转换成listview列表

    前面几篇博文介绍了从项目搭建到获取网络字符串,对一个项目的前期整体工作进行了详细的介绍,本篇接着上篇介绍一下怎么样优雅将网络返回的json字符串轻松转换成listview列表. 先上图,看一下效果. ...

随机推荐

  1. JS实现拖动(2)

    getBoundingClientRect() 来获取页面元素的位置 document.documentElement.getBoundingClientRect 该方法返回一个对象,从而获得页面中某 ...

  2. 不能设置sublime text作为默认打开程序

    删除 HKEY_CURRENT_USER\Software\Classes\Applications下的Sublime_Text.exe项.你就发现可以设置为默认打开方式了

  3. gcc-链接库顺序

    http://qianchenglong.github.io/2015/08/26/gcc-%E9%93%BE%E6%8E%A5%E5%BA%93%E9%A1%BA%E5%BA%8F/ http:// ...

  4. Python学习笔记四:面向对象编程

    一:定义类并创建实例 Python中定义类,通过class关键字,类名开头大写,参数列表为所继承的父类.如果没有需要明确继承的类,则继承object. 使用类来创建对象,只需 类名+() 形式即可,p ...

  5. C# Linq to Entity Lamda方式分组并求和求平均值

    1.单字段分组并求和: var list = data.GroupBy(g => g.GoodsId).Select(e => new { GoodsId = e.Key, Qty = e ...

  6. XMLHttpRequest HTTP请求的返回码为0 http status = 0

    由于用户在http返回前关闭/取消,或者防火墙等原因,会造成http请求没有status信息.w3c有相应的说明:http://www.w3.org/TR/XMLHttpRequest/#the-st ...

  7. oracle中extract()函数----用于截取年、月、日、时、分、秒

    oracle中extract()函数从oracle 9i中引入,用于从一个date或者interval类型中截取到特定的部分 语法如下: extract ( { year | month | day ...

  8. 〖Linux〗Kubuntu14.04 平滑字体的设置

    有没有感觉终端的字体锯齿感觉非常强? 经过搜索后发现可以平滑字体显示得更漂亮一点: System Settings > Application Appearance > Fonts I e ...

  9. Selenium高亮页面对象

    使用QTP习惯了,在QTP中可以通过访问对象的highlight方法直接高亮对象,确实很方便,那么如何让Selenium高亮页面的测试对象了,可以通过javascript修改页面对象的属性进而高亮对象 ...

  10. python之函数用法startswith()

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python之函数用法startswith() #http://www.runoob.com/python/ ...