Jackson.jar的使用记录

之前一直使用json-lib.jar,近期发现网上说这个jackson.jar比較好

package com.spring.controller;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.List; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.codehaus.jackson.JsonEncoding;
import org.codehaus.jackson.JsonGenerator;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.map.ObjectWriter;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView; @Controller
public class JacksonController { @RequestMapping(value="user/jackson", method = {RequestMethod.POST,RequestMethod.GET})
public ModelAndView PostJsonTest(HttpServletRequest request,HttpServletResponse response) throws IOException{
ModelAndView mav=new ModelAndView();
mav.addObject("time", new Date());
JsonGenerator jsonGenerator = null;
ObjectMapper objectMapper = new ObjectMapper();
jsonGenerator = objectMapper.getJsonFactory().createJsonGenerator(System.out, JsonEncoding.UTF8); //将java对象转为json
UserJson userJson=new UserJson();
userJson.setUsername("小米");
userJson.setId("31231");
userJson.setPwd("123456");
userJson.setAge(24);
userJson.setAddress("广州");
userJson.setTel(13676586);
//objectMapper.writeValue(jsonGenerator, userJson);
String jsonStr = objectMapper.writeValueAsString(userJson); //writeObject能够转换java对象,eg:JavaBean/Map/List/Array等
//jsonGenerator.writeObject(userJson); System.out.println("-----json-------");
String jsonSS="{\"address\":\"广州\",\"id\":\"31231\",\"username\":\"小米\",\"tel\":13676586,\"age\":24,\"pwd\":\"123456\"}";
System.out.println("--------字符串json-------"+jsonSS);
System.out.println("------标准jsonStr--------"+jsonStr);
mav.addObject("jsonStr", jsonStr);
mav.addObject("jsonss", jsonSS.toString());
mav.setViewName("json/jackson"); //将list集合转为json
List<UserJson> list=new ArrayList<UserJson>();
for(int i=0;i<5;i++){
UserJson u3=new UserJson();
u3.setId("ooo"+i);
u3.setUsername("小小明"+i);
u3.setPwd("123456"+i);
u3.setAge(20+i);
u3.setAddress("广州"+i);
u3.setTel(13664+i*i*i);
list.add(u3);
}
String jsonlist = objectMapper.writeValueAsString(list);
mav.addObject("jsonlist", jsonlist.toString()); mav.setViewName("json/jackson");
return mav;
} /**
* list转为json数组
*/
public String writeListToJsonArray() throws IOException {
/*List<Event> list = new ArrayList<Event>(2);
list.add(new Event("a1","a2"));
list.add(new Event("b1","b2"));*/ List<String> list = new ArrayList<String>();
list.add("A2");
list.add("B2"); OutputStream out = new ByteArrayOutputStream();
ObjectMapper mapper = new ObjectMapper();
mapper.writeValue(out, list);
byte[] data = ((ByteArrayOutputStream) out).toByteArray();
System.out.println(new String(data));
String result=new String(data);
return result;
} /**
* list转为json数组
*/
public String writeListToJsonArray2() throws IOException {
ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter();
final ObjectMapper mapper = new ObjectMapper();
List<String> list = new ArrayList<String>();
list.add("A2");
list.add("B2");
String jsonArray = ow.writeValueAsString(list);
System.out.println(jsonArray);
return jsonArray;
} } ///java对象
class UserJson{
private String id;
private String username;
private String pwd;
private Integer age;
private int tel;
private String address;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public int getTel() {
return tel;
}
public void setTel(int tel) {
this.tel = tel;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
} }

list转为json数组(是Java main程序)

package com.main.java.demo;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List; import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.map.ObjectWriter; public class JacksonDemo {
public static void main(String args[]) throws IOException{
//writeListToJsonArray();
//writeListToJsonArray2();
//writeListToJsonArray3();
//writeListToJsonArray4();
//writeListToJsonArray5();
writeListToJsonArray6();
} /**
* list转为json数组
*/
public static String writeListToJsonArray() throws IOException {
/*List<Event> list = new ArrayList<Event>(2);
list.add(new Event("a1","a2"));
list.add(new Event("b1","b2"));*/ /*List<String> list = new ArrayList<String>();
list.add("A2");
list.add("B2");*/ /*List<Integer> list = new ArrayList<Integer>();
list.add(12);
list.add(45);
list.add(5);*/ List<Float> list = new ArrayList<Float>();
list.add((float) 12.32);
list.add((float) 45.12);
list.add((float) 5.09); OutputStream out = new ByteArrayOutputStream();
ObjectMapper mapper = new ObjectMapper();
mapper.writeValue(out, list);
byte[] data = ((ByteArrayOutputStream) out).toByteArray();
System.out.println(new String(data));
String result=new String(data);
return result;
} /**
* list转为json数组
*/
public static String writeListToJsonArray2() throws IOException {
ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter();
final ObjectMapper mapper = new ObjectMapper();
List<String> list = new ArrayList<String>();
list.add("A2");
list.add("B2"); //// Using writeValueAsString
String jsonArray = ow.writeValueAsString(list);
System.out.println(jsonArray);
return jsonArray;
} /**
* list转为json数组
*/
public static String writeListToJsonArray3() throws IOException {
ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter();
ObjectMapper mapper = new ObjectMapper();
List<String> list = new ArrayList<String>();
list.add("A23");
list.add("B23"); //// Using Bytes
byte[] data = mapper.writeValueAsBytes(list);
String jsonArray = new String(data, "UTF-8");
System.out.println(jsonArray);
return jsonArray;
} /**
* list转为json数组
*/
public static String writeListToJsonArray4() throws IOException {
ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter();
ObjectMapper mapper = new ObjectMapper();
List<String> list = new ArrayList<String>();
list.add("A234");
list.add("B234"); // Using ByteArrayOutputStream with new String()
OutputStream os = new ByteArrayOutputStream();
mapper.writeValue(os, list);
byte[] data = ((ByteArrayOutputStream) os).toByteArray();
String jsonArray = new String(data, "UTF-8");
System.out.println(jsonArray);
return jsonArray;
} /**
* list转为json数组
*/
public static String writeListToJsonArray5() throws IOException {
ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter();
ObjectMapper mapper = new ObjectMapper();
List<String> list = new ArrayList<String>();
list.add("A2345");
list.add("B2345"); // Using ByteArrayOutputStream
final OutputStream os = new ByteArrayOutputStream();
mapper.writeValue(os, list);
String jsonArray = ((ByteArrayOutputStream) os).toString("UTF-8");
System.out.println(jsonArray);
return jsonArray;
} /**
* list转为json数组
*/
public static String writeListToJsonArray6() throws IOException {
ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter();
ObjectMapper mapper = new ObjectMapper();
List<String> list = new ArrayList<String>();
list.add("A23456");
list.add("B23456"); // Using writeValueAsString
String jsonArray = mapper.writeValueAsString(list);
System.out.println(jsonArray);
return jsonArray;
} }

jsp页面:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>My JSP 'jackson.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script src="<%=basePath%>js/jquery.min.js"></script> </head> <body>
<h3>Jackson 解析json</h3>
<div><p>传过来的标准json字符串-----是一个json对象----</p>${jsonStr}</div> <div><p>传过来的json格式字符串-----是一个json对象-----</p>${jsonss}</div> <p>本页面造的json格式字符串------要转为json对象才干解析(还不是一个json对象)----</p>
<div class="jsonHtml">{"address":"广州","id":"31231","username":"小米","tel":13676586,"pwd":"123456","age":24}</div> <div><p>传过来的jsonlist-----是一个json数组对象-----</p>${jsonlist}</div> </body>
</html>
<script type="text/javascript">
<!--
$(document).ready(function(){
/*
//解析服务端传过来的标准json
var jsonStr=${jsonStr};//是一个json对象
alert(jsonStr.username);//能够解析服务端传过来的json字符串。但解析不了页面造的字符串
//遍历json标准字符串
//var data=eval("("+jsonStr+")");
//alert(data.tel); //var jsonss=${jsonss};//是一个json对象,不用转为json对象,否则出错
//alert(jsonss);//是一个对象
//var item = jQuery.parseJSON(jsonss);
//alert(item.address); var jsonHtml = $(".jsonHtml").html();//是一个字符串,要转为json对象
//alert(jsonHtml.tel);//解析不了页面造的字符串,但能解析服务端传过来的字符串 var item = jQuery.parseJSON(jsonHtml);
alert(item.address);
*/ //解析listjson
var jsonlist=${jsonlist};
alert(jsonlist.length);
alert(jsonlist[0].username);
for(var i=0;i<jsonlist.length;i++){
alert(jsonlist[i].username);
} });
//-->
</script>

Jackson.jar的使用记录的更多相关文章

  1. 上班打卡--- 通过批处理命令执行jar文件来记录上班时间

    如果 一个程序员要记录自己上班工作时间的话 ,还需要靠手动去记录, 那就有点 不够范了, 程序员自然要有自己的极客范儿 , 下面就跟我一起来(zhuangbi); 先列一下整体的步骤: 1: 先做一个 ...

  2. json格式字符串与java.util.Map的互转(借助于jackson.jar)

    package com.test.javaAPI.json; /** * json工具类 * * @author Wei * @time 2016年10月2日 下午4:25:25 */ public ...

  3. WEB应用打成jar包全记录

    内容属原创,转载请注明出处 题外 由于项目的需求—不管是怎么产生的这个需求—总之,需要支持把一个web应用打成jar包供其他应用使用,这就有了下面的过程. 这个过程里用到了Spring和SpringM ...

  4. spring使用jackson返回object报错:Handler execution resulted in exception: Could not find acceptable representation

    问题:在springmvc中添加Jackson jar包返回Object类型,处理器方法的produces属性不写,默认根据类型,但如果指定了(错误原因)produces = "text/h ...

  5. 搭建SSH框架所需Jar包及其解释

    SSH2 ----struts2.1.8---- struts2-core-2.1.8.1.jar struts2核心包 struts2-json-plugin-2.1.8.1.jar struts2 ...

  6. AS中jar包和aar包区别及导入导出

    发布时间:2018-01-18 来源:网络 上传者:用户 关键字: 导出 导入 区别 包和 aar jar 发表文章 摘要:jar包和aar包区别*.jar:只包含class文件与清单文件,不包含资源 ...

  7. sqoop1.4.7 导入数据到hive2.3.4 jackson版本问题

    今天用sqoop往hive导入数据的时候,执行报错,错误信息为: java.lang.NoSuchMethodError:com.fasterxml.jackson.databind.ObjectMa ...

  8. struts2.1.8 spring2.5.6 hibernate3.3G 依赖jar包

    ----struts2.1.8---- struts2-core-2.1.8.1.jar struts2核心包 struts2-json-plugin-"} struts2-spring-p ...

  9. 8.5打包libgdx为一个桌面程序(jar包)

    简陋的地图编辑终于做好了,于是要开始制作地图了,想导出为一个windows下可用的程序,让熟人代做地图,然后找人问了下打包流程,其实跟普通java打包为jar没什么区别,记录如下: 导出类型选第三个 ...

随机推荐

  1. LAMP第三部分php配置和mysql配置

    9. 配置防盗链http://www.lishiming.net/thread-71-1-1.html 防止别人的网站,放你网站图片的链接, 位置一般情况下在 /usr/local/apache/co ...

  2. 1 - Django安装

    一.Python安装 在Mac系统下,系统自带python开发环境,打开终端,输入python,我们就可以看到当前python版本号,例如我的系统是OS X EI Caption 10.11.1,自带 ...

  3. DFA Minimization

    有点晚了我就不调试了..不过说是这么说我还是过了编译的.. #include<bits/stdc++.h> using namespace std; namespace DFA{ cons ...

  4. Python之面向对象:继承

    概念:子类继承父类的属性和方法. 一个派生类(derived class)继承基类(bass class)字段和方法.继承也允许把一个派生类的对象作为一个基类对象对待. 一.单继承 :推崇.特点和使用 ...

  5. [AGC008F] Black Radius(树形dp)

    神题啊!! Description 给你一棵有N个节点的树,节点编号为1到N,所有边的长度都为1 "全"对某些节点情有独钟,这些他喜欢的节点的信息会以一个长度为N的字符串s的形式给 ...

  6. duilib入门简明教程 -- 界面设计器 DuiDesigner (10) (转)

    原文转自:http://www.cnblogs.com/Alberl/p/3343838.html     上一个教程讲解了怎么布局最大化.最小化.关闭按钮,但是如果手动去计算这三个按钮的位置和大小的 ...

  7. Selenium 2.0自动化测试

    http://blog.sina.com.cn/s/blog_b6142fb401017oo6.html http://www.cnblogs.com/halia/p/3562132.html?utm ...

  8. python笔记6:模块

    6. 模块(一个 .py 文件称为一个模块Module) import 语句 类似 _xxx 和 __xxx 这样的 函数/变量 是非公开的(private),不应该被直接引用 函数定义: 外部不需要 ...

  9. 线程和进程(Java)

    一.线程概述 线程是程序运行的基本执行单元.当操作系统(不包括单线程的操作系统,如微软早期的DOS)在执行一个程序时,会在系统中建立一个进程,而在这个进程中,必须至少建立一个线程(这个线程被称为主线程 ...

  10. luogu P1854 花店橱窗布置

    题目描述 某花店现有F束花,每一束花的品种都不一样,同时至少有同样数量的花瓶,被按顺序摆成一行,花瓶的位置是固定的,从左到右按1到V顺序编号,V是花瓶的数目.花束可以移动,并且每束花用1到F的整数标识 ...