java 使用jackson例子_如何使用Jackson解析JSON示例

如何使用Jackson解析JSON示例

导语:为了方便大家Java的.学习,下面是小编给大家提供的如何使用Jackson解析JSON示例,大家可以参考阅读,更多详情请关注应届毕业生考试网。

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 userList = new ArrayList();

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 map = new HashMap();

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> list = objectMapper.readValue(

json, List.class);

System.out.println(list.size());

for (int i = 0; i < list.size(); i++) {

Map map = list.get(i);

Set set = map.keySet();

for (Iterator 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> maps = objectMapper.readValue(json, Map.class);

System.out.println(maps.size());

Set key = maps.keySet();

Iterator 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;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值