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>
时间: 2024-10-07 17:55:12

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

WEB应用打成jar包全记录

内容属原创,转载请注明出处 题外 由于项目的需求—不管是怎么产生的这个需求—总之,需要支持把一个web应用打成jar包供其他应用使用,这就有了下面的过程. 这个过程里用到了Spring和SpringMVC(用到的版本是3.1.4,后面略过此描述)的若干东东,如果不用这玩意的,请飘过. 要做些什么? 需要打包的这个Web应用包含下面这些内容: 静态资源,含 js.css.image 页面文件:jsp Jsp标签,含 tld文件和若干java代码 基于SpringMVC的其他若干Control和Se

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

如果 一个程序员要记录自己上班工作时间的话 ,还需要靠手动去记录, 那就有点 不够范了, 程序员自然要有自己的极客范儿 , 下面就跟我一起来(zhuangbi); 先列一下整体的步骤: 1: 先做一个jar文件, 通过执行这个jar文件可以将上下班时间 写入数据库中; 2: 再写一个批处理脚本,能通过批处理命令来执行这个jar文件; 3: 将批处理文件做开机启动执行处理; 1: 先写一个可执行jar: 原理: 通过jdbc操作数据库, 那就上代码吧: 项目目录结构: pom.xml文件: <?x

关于使用jackson.jar解析JSON时,大写JSON key值发生报错的问题

最近在项目中调用.NET的服务时,Jackson在解析返回的json字符串时始终报错,纠结很久之后才找到原因,原来是是由于json字符串中的字母都是首字母大写,导致jackson找不到相应的KEY. 解决方法有两种: 直接将bean对象中的属性改为public,属性名命名为首字母大写,比如{"Name":"nomouse","Age":12},定义相应的bean为: public class User { public String Name;

SSH框架整合中的备忘记录

整合ssh需要的jar包: struts2-core.jar struts2-convention-plugin-2.*.*.*.jar ------是struts2的注解开发jar包 struts2-spring-plugin-2.*.*.*.jar ------struts2用于整合spring的jar包 (spring中也有一个 spring-struts2的jar包,也是用来整合两个框架的jar包,引入其中一个可以) Hibernate框架开发的响应的jar: hibernate-cor

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

----struts2.1.8---- struts2-core-2.1.8.1.jar struts2核心包 struts2-json-plugin-2.1.8.1.jar struts2的json插件--var s = {name:"zhangs",age:"18"} struts2-spring-plugin-2.1.8.1.jar 与spring集成插件 xwork-core-2.1.6.jar struts2的构建基础jar struts2-convent

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

SSH2 ----struts2.1.8---- struts2-core-2.1.8.1.jar struts2核心包 struts2-json-plugin-2.1.8.1.jar struts2的json插件--var s = {name:"zhangs",age:"18"} struts2-spring-plugin-2.1.8.1.jar 与spring集成插件 xwork-core-2.1.6.jar struts2的构建基础jar struts2-co

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

发布时间:2018-01-18 来源:网络 上传者:用户 关键字: 导出 导入 区别 包和 aar jar 发表文章 摘要:jar包和aar包区别*.jar:只包含class文件与清单文件,不包含资源文件,如图片等所有res中的文件.*.aar:包含所有资源,class以及res资源文件全部包含如果你只是一个简单的类库那么使用生成的*.jar文件即可;如果你的是一个UI库,包含一些自己写的控件布局文件以及字体等资源文件那么就只能使用*.aar文件.jar包和aar包导出1.新建库步骤:File-

struts2的fastjson,jackson转换json简单使用

一.Fastjson使用 1.导入fastjson.jar包 2.使用方法 对于对象和集合使用同样的方法 使用JSON.toJSONString(对象)返回一个json对象 3.如果对Date类型进行格式化输出 @JSONField(format="yyyy-MM-dd") private Date birthday; 4.关于属性是否生成在json串中设置 在action中new一个SerializeFilter SerializeFilter filter = new Proper

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

简陋的地图编辑终于做好了,于是要开始制作地图了,想导出为一个windows下可用的程序,让熟人代做地图,然后找人问了下打包流程,其实跟普通java打包为jar没什么区别,记录如下: 导出类型选第三个 然后选择启动类 选择第三个 然后提示导出成功 因为游戏地图是用Gdx.files.local方法写的 本来以为读取加载,或保存时会出错, 结果可以正常使用,在目录下自动生成了相关文件... 原文地址:https://www.cnblogs.com/tysk/p/10803204.html