使用jackson处理json数据

maven中的配置,这里没有写版本信息

<dependency>
     <groupId>org.codehaus.jackson</groupId>
     <artifactId>jackson-core-asl</artifactId>
</dependency>
<dependency>
     <groupId>org.codehaus.jackson</groupId>
     <artifactId>jackson-mapper-asl</artifactId>
</dependency>

工具类

package opstools.vtm.support.utils;

import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.type.TypeReference;

public class JsonSupportUtils {

    public final static ObjectMapper jsonMapper = new ObjectMapper();

    public static String serialize(Object object) throws Exception{
        return jsonMapper.writeValueAsString(object);
    }

    public static <T> T deserialize(String str, Class<T> valueType) throws Exception{
        return (T)jsonMapper.readValue(str, valueType);
    }

    public static <T> T deserialize(String str, TypeReference valueTypeRef) throws Exception{
        return (T)jsonMapper.readValue(str, valueTypeRef);
    }

}

测试使用

-->Service层的某个类

    @SuppressWarnings("unchecked")
    @Override
    public String getDicByCodeAndFactoryValue(String code,String factoryValue) throws Exception{

        //改成JSON格式的
        List<Object[]> result=  (List<Object[]>) dicdao.getDicByCodeAndFactoryValue(code,factoryValue);
        List<ResourceValue> rvs=new ArrayList<ResourceValue>();
        if(result!=null && result.size()>0){
            for(Object[] obj:result){
                rvs.add(new ResourceValue(obj[0],obj[1]));
            }
            return JsonSupportUtils.serialize(rvs);
        }
        return null;

    }

-->Action层的某个类

    /**
     * 从字典中获取设备型号信息(依据设备厂商信息)
     * @return
     * @throws Exception
     */
    public  void getDeviceTypeJSON() throws Exception{
        String factory=request.getParameter("factory");
        if(factory!=null){
            //根据厂商信息加载设备型号
            String result=dicService.getDicByCodeAndFactoryValue(DIC_DEVICE_MODEL, factory);            //设置json格式
            response.setContentType("text/json;charset=UTF-8");
            response.getWriter().write(result);
        }
    }

-->前台界面层的处理,这里是用jquery处理的js

<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
       ......   /**    *下拉框的级联操作    */
        <script type="text/javascript" >

            $(document).ready(function(){

                $("#deviceFactory").on("change",function(event){

                    $.post("deviceInfo!getDeviceTypeJSON.jspa",
                            {factory:$(this).val()},
                            function(data){

                                if(data!=null){
                                    //1,清空设备型号内部元素
                                    $("#deviceType").empty();
                                    //2,增加提示信息
                                    $("#deviceType").append("<option value=''>请选择</option>");
                                    for(var i=0;i<data.length;i++){
                                        //添加新数据
                                        var option="<option value='"+data[i].realValue+"'>"+data[i].displayValue+"</option>";

                                        $("#deviceType").append(option);
                                    }
                                }

                            },"json");
                });
            })

        </script>
    </head>
    <body  ......
        <s:form id="MYFORM" action="%{pageAction}" method="post" theme="simple">
        <div id="content">
            <table>
               ......
                <tr>

                    <th width="17%">设备厂商:</th>
                    <td width="35%"><s:select name="deviceInfo.factory" id="deviceFactory"
                            list="deviceFactoryList"
                            listKey="realValue"
                            listValue="displayValue"
                            headerKey=""
                            headerValue="请选择"/>
                        </td>
                    <th width="13%">设备型号:</th>
                    <td width="35%"><s:select name="deviceInfo.deviceNo" id="deviceType"
                            list="deviceTypeList"
                            listKey="realValue"
                            listValue="displayValue"
                            headerKey=""
                            headerValue="请选择"/>
                        </td>
                </tr>

            </table>
        </div>
        </s:form>
    </body>
</html>

json-java处理-jackson的更多相关文章

  1. Java JSON处理库Jackson

    Jackson是一款为Java平台提供的一套数据处理类库工具,Jackson的主要功能是提供JSON解析和生成.另外,Jackson还提供额外的类库以支持处理Avro, CBOR, CSV, Smil ...

  2. Java解析json(二):jackson

    Java解析json(二):jackson   官方参考 Jackson Home Page:https://github.com/FasterXML/jackson Jackson Wiki:htt ...

  3. Java进阶学习:JSON解析利器JackSon

    Java:JSON解析利器JackSon JackSon基础 1.Maven项目引入 <!-- https://mvnrepository.com/artifact/org.codehaus.j ...

  4. java使用jackson生成和解析JSON

    java使用jackson生成和解析JSON 1.导包 2.生成json和解析json package test; import com.fasterxml.jackson.core.JsonProc ...

  5. Java用Jackson遍历json所有节点

    <!-- jackson begin --> <dependency> <groupId>com.fasterxml.jackson.core</groupI ...

  6. Json解析工具Jackson(使用注解)

    原文http://blog.csdn.net/nomousewch/article/details/8955796 接上一篇文章Json解析工具Jackson(简单应用),jackson在实际应用中给 ...

  7. Java使用jackson问题解决

    Java使用jackson问题解决 >>>>>>>>>>>>>>>>>>>>&g ...

  8. Java 使用 Jackson库 对 JavaMap 进行序列化反序列化

    最近在用 java 处理一一些东西,发现 java 对对象进行序列化反序列化比起 python 来还是有些麻烦记录一下. 找了好几个库最后选择了 Jackson 感觉大家对它评价还不错. 将目标从 J ...

  9. Json解析工具Jackson(使用注解)--jackson框架自定义的一些json解析注解

    Json解析工具Jackson(使用注解)--jackson框架自定义的一些json解析注解 @JsonIgnoreProperties 此注解是类注解,作用是json序列化时将Javabean中的一 ...

  10. Java之JSON操作(Jackson)

    Java to JSON: package json.jackson; import bean.User; import com.fasterxml.jackson.databind.ObjectMa ...

随机推荐

  1. perl的正则表达式

    “小骆驼”的“正则表达式“部分学习总结: 一.匹配语法: 1.".":任意单字符(‘\n‘除外): 2.“*“:匹配前项0-n次: 3.“+“:匹配前项1-n次: 4.“?”:匹配 ...

  2. easyui datagrid自定义按钮列,即最后面的操作列(转)

    做项目的时候因为需求,要在表格的最后添加一列操作列,easyUI貌似没有提供这种功能,不过没关系,我们可以自定义来实现 版本:jQuery easyUI 1.3.2 这里我的实现方式是采用HTML形式 ...

  3. JavaWeb(六)Listener监听器

    监听器 监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法将立即被执行. Servlet监听器 在Se ...

  4. SpringMVC(一)--基础、REST、@RequestParam、POST请求乱码等

    1.SpringMVC基本概述 Spring 为展现层提供的基于 MVC 设计理念的优秀的Web 框架,是目前最主流的 MVC 框架之一 Spring3.0 后全面超越 Struts2,成为最优秀的 ...

  5. JavaPOI处理Excel

     java处理excel,心得分享如下,如有不妥或者需要补充的地方,敬请指出,欢迎随时交流 1.加载excel,获得workbook对象 fileTemp = new File(pathOfMExce ...

  6. python专题-函数式编程

    函数式编程是使用一系列函数去解决问题,按照一般编程思维,面对问题时我们的思考方式是"怎么干",而函数函数式编程的思考方式是我要"干什么". 至于函数式编程的特点 ...

  7. 文档API生成神器SandCastle使用心得

    一.功能描述 关于Sandcastle网上的参考资料相对较少,Google出来很多资料都是全英文的,相对于我这种英语渣渣看起来还是很费劲的. 言简意赅,Sandcastle主要功能是能够将C#类生成类 ...

  8. 我的项目经验总结——CDN镜像:1(初探)

    前言 其实,这个标题有些大,作为一个小白,只是在实际工作中经常听闻我司的CDN服务如何如何牛B……而且我司的云服务还拿到了工信部的CDN牌照……那么,作为一个研发仔,怎么能不去了解和熟悉呢?!不过,这 ...

  9. 垃圾收集器Serial 、Parallel、CMS、G1

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt378 这里介绍4个垃圾收集器,如果进行了错误的选择将会大大的影响程序的性能. ...

  10. Java中ArrayList remove会遇到的坑

    前言 平时最常用的莫过于ArrayList和HashMap了,面试的时候也是问答的常客.先不去管容量.负载因子什么的,就是简单的使用也会遇到坑. Remove 元素 经常遇到的一个场景是:遍历list ...