【736c677c4】spring框架中的jackson解析json方法

转载 2012年03月29日 14:55:49
从CSDN上的一人的博客中转的,他的博客地址为:http://blog.csdn.net/wyc_cs/article/details/6679722

package com.bbs.utils.json;

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;

import org.codehaus.jackson.JsonGenerator;
import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.node.JsonNodeFactory;

public class JacksonTest {
 private static JsonGenerator jsonGenerator = null;
 private static ObjectMapper objectMapper = null;
 private static User user = null;

 public static void writeEntity2Json() throws IOException {
  System.out.println("使用JsonGenerator转化实体为json串-------------");
  // writeObject可以转换java对象,eg:JavaBean/Map/List/Array等
  jsonGenerator.writeObject(user);
  System.out.println();
  System.out.println("使用ObjectMapper-----------");
  // writeValue具有和writeObject相同的功能
  objectMapper.writeValue(System.out, user);
 }

 public static void writeList2Json() throws IOException {
  List<User> userList = new ArrayList<User>();
  userList.add(user);
  User u = new User();
  u.setUid(10);
  u.setUname("archie");
  u.setUpwd("123");
  userList.add(u);
  objectMapper.writeValue(System.out, userList);
 }

 public static void writeMap2Json() {
  try {
   Map<String, Object> map = new HashMap<String, Object>();
   User u = new User();
   u.setUid(10);
   u.setUname("archie");
   u.setUpwd("123");
   map.put("uid", u.getUid());
   map.put("uname", u.getUname());
   map.put("upwd", u.getUpwd());
   System.out.println("jsonGenerator");
   jsonGenerator.writeObject(map);
   objectMapper.writeValue(System.out, map);
  } catch (IOException e) {
   e.printStackTrace();
  }
 }

 public static void writeOthersJSON() {
  try {
   String[] arr = { "a", "b", "c" };
   System.out.println("jsonGenerator");
   String str = "hello world jackson!";
   // byte
   jsonGenerator.writeBinary(str.getBytes());
   // boolean
   jsonGenerator.writeBoolean(true);
   // null
   jsonGenerator.writeNull();
   // float
   jsonGenerator.writeNumber(2.2f);
   // char
   jsonGenerator.writeRaw("c");
   // String
   jsonGenerator.writeRaw(str, 5, 10);
   // String
   jsonGenerator.writeRawValue(str, 5, 5);
   // String
   jsonGenerator.writeString(str);
   jsonGenerator.writeTree(JsonNodeFactory.instance.POJONode(str));
   System.out.println();
   // Object
   jsonGenerator.writeStartObject();// {
   jsonGenerator.writeObjectFieldStart("user");// user:
   jsonGenerator.writeStringField("name", "jackson");// name:jackson
   jsonGenerator.writeBooleanField("sex", true);// sex:true
   jsonGenerator.writeNumberField("age", 22);// age:22
   jsonGenerator.writeEndObject();
   jsonGenerator.writeArrayFieldStart("infos");// infos:[
   jsonGenerator.writeNumber(22);// 22
   jsonGenerator.writeString("this is array");// this is array
   jsonGenerator.writeEndArray();// ]
   jsonGenerator.writeEndObject();// }
   User u = new User();
   user.setUid(5);
   user.setUname("tom");
   user.setUpwd("123");
   user.setNumber(3.44);
   // complex Object
   jsonGenerator.writeStartObject();// {
   jsonGenerator.writeObjectField("uid", u);// user:{bean}
   jsonGenerator.writeObjectField("infos", arr);// infos:[array]
   jsonGenerator.writeEndObject();// }
  } catch (Exception e) {
   e.printStackTrace();
  }
 }

 /**
  * JSON字符串转换为对象
  */
 public static void readJson2Entity() {
  String json = "{\"uid\":5,\"uname\":\"tom\",\"number\":3.44,\"upwd\":\"123\"}";
  try {
   User acc = objectMapper.readValue(json, User.class);
   System.out.println(acc.getUid());
   System.out.println(acc);
  } catch (JsonParseException e) {
   e.printStackTrace();
  } catch (JsonMappingException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
 }

 /**
  * JSON转换为List对象
  */
 public static void readJson2List() {
  String json = "[{\"uid\":1,\"uname\":\"www\",\"number\":234,\"upwd\":\"456\"},"
    + "{\"uid\":5,\"uname\":\"tom\",\"number\":3.44,\"upwd\":\"123\"}]";
  try {
   List<LinkedHashMap<String, Object>> list = objectMapper.readValue(
     json, List.class);
   System.out.println(list.size());
   for (int i = 0; i < list.size(); i++) {
    Map<String, Object> map = list.get(i);
    Set<String> set = map.keySet();
    for (Iterator<String> it = set.iterator(); it.hasNext();) {
     String key = it.next();
     System.out.println(key + ":" + map.get(key));
    }
   }
  } catch (JsonParseException e) {
   e.printStackTrace();
  } catch (JsonMappingException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
 }

 /**
  * JSON转换为数组对象
  */
 public static void readJson2Array() {
  String json = "[{\"uid\":1,\"uname\":\"www\",\"number\":234,\"upwd\":\"456\"},"
    + "{\"uid\":2,\"uname\":\"sdfsdf\",\"number\":4745,\"upwd\":\"23456\"}]";
  try {
   User[] arr = objectMapper.readValue(json, User[].class);
   System.out.println(arr.length);
   for (int i = 0; i < arr.length; i++) {
    System.out.println(arr[i]);
   }
  } catch (JsonParseException e) {
   e.printStackTrace();
  } catch (JsonMappingException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
 }

 /**
  * JSON转换为Map对象
  */
 public static void readJson2Map() {
  String json = "{\"success\":true,\"A\":{\"address\": \"address2\",\"name\":\"haha2\",\"id\":2,\"email\":\"email2\"},"+  
  "\"B\":{\"address\":\"address\",\"name\":\"haha\",\"id\":1,\"email\":\"email\"}}";
  try {
   Map<String, Map<String, Object>> maps = objectMapper.readValue(json, Map.class);
   System.out.println(maps.size());
   Set<String> key = maps.keySet();
   Iterator<String> iter = key.iterator();
   while (iter.hasNext()) {
    String field = iter.next();
    System.out.println(field + ":" + maps.get(field));
   }
  } catch (JsonParseException e) {
   e.printStackTrace();
  } catch (JsonMappingException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
 }

 public static void main(String[] args) {
  user = new User();
  user.setUid(5);
  user.setUname("tom");
  user.setUpwd("123");
  user.setNumber(3.44);
  objectMapper = new ObjectMapper();
  try {
   //jsonGenerator = objectMapper.getJsonFactory().createJsonGenerator(System.out, JsonEncoding.UTF8);
   // writeEntity2Json();
   // writeMap2Json();
   // writeList2Json();
   // writeOthersJSON();
   // readJson2Entity();
   // readJson2List();
//   readJson2Array();
   readJson2Map();
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
}


 

========================User.java==============

package com.bbs.utils.json;

public class User {
 private int uid;
 private String uname;
 private String upwd;
 private double number;
 public double getNumber() {
  return number;
 }
 public void setNumber(double number) {
  this.number = number;
 }
 public int getUid() {
  return uid;
 }
 public void setUid(int uid) {
  this.uid = uid;
 }
 public String getUname() {
  return uname;
 }
 public void setUname(String uname) {
  this.uname = uname;
 }
 public String getUpwd() {
  return upwd;
 }
 public void setUpwd(String upwd) {
  this.upwd = upwd;
 }
 
}

菜鸟学习Spring——SpringMVC注解版在服务器端获取Json字符串并解析

一、概述。        SpringMVC在服务端把客户端传过来的JSON字符串,并把JSON字符串转成 JSON对象并取得其中的属性值,这个在项目中经常用到。 二、代码演示。 需...
  • gwblue
  • gwblue
  • 2015年01月25日 19:54
  • 16117

【SpringMVC学习09】SpringMVC与前台的json数据交互

json数据格式在接口调用中、html页面中比较常用,json格式比较简单,解析也比较方便,所以使用很普遍。在springmvc中,也支持对json数据的解析和转换,这篇文章主要总结一下springm...
  • eson_15
  • eson_15
  • 2016年06月25日 18:50
  • 22565

菜鸟学习Spring——SpringMVC注解版解析不同格式的JSON串

一、概述         不同格式的JSON串传到后台来实现功能这个是我们经常要做的一件事,本篇博客就给大家介绍四种不同的JSON串传到后台后台如何用@RequestBody解析这些不同格式...
  • gwblue
  • gwblue
  • 2015年01月29日 12:06
  • 12977

Spring MVC JSON数据交互-解析和返回JSON

首先要搭建一个Spring MVC的工程,可以参看我的另一篇博客:http://blog.csdn.net/qq245671051/article/details/47206331 Spring ...
  • QQ245671051
  • QQ245671051
  • 2015年08月02日 15:16
  • 2640

SpringMVC返回json数据的三种方式

1、第一种方式是spring2时代的产物,也就是每个json视图controller配置一个Jsoniew。 如:  或者 同样要用jackson的jar包。 2、第二种使用JSON工具将对象序列...
  • shan9liang
  • shan9liang
  • 2014年12月30日 09:02
  • 250848

SpringMVC json处理 (Jackson)

package com.e6.ztest; public class AccountBean {    private int id;    private String name;    pri...
  • zhujtbl0505
  • zhujtbl0505
  • 2014年03月25日 00:37
  • 3600

Spring整合JSON

在使用SpringMVC结合JSON时,需要导入com.springsource.org.codehaus.jackson.mapper-1.4.2.jar和com.springsource.org....
  • u013516966
  • u013516966
  • 2014年11月02日 20:59
  • 2313

Springmvc JSON交互

先上前端javascript,ajax代码 function testAjaxS(){ $.ajax({ type:'post', url:'material/...
  • tragedyxd
  • tragedyxd
  • 2015年07月15日 15:33
  • 2851

一个Spring + Json异常的问题

Spring可以轻易实现在Controller中将一个对象转成Json放在ResponseBody中返回,如下: @RequestMapping(value = "/getqbankrecord/{...
  • xplizm
  • xplizm
  • 2012年11月20日 23:17
  • 10544

SpringMVC 4.x输出JSON数据配置

SpringMVC接口输出JSON数据
  • comven2
  • comven2
  • 2017年01月20日 17:56
  • 1410
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【736c677c4】spring框架中的jackson解析json方法
举报原因:
原因补充:

(最多只允许输入30个字)