java Jackson 库操作 json 的基本演示
来源:互联网 发布:jdk 7 linux x64.rpm 编辑:程序博客网 时间:2024/06/07 02:09
原文:http://blog.csdn.net/joyous/article/details/9448461 作者:iNull
核心库下载地址
http://repo1.maven.org/maven2/com/fasterxml/jackson/core/
jackson-annotations-2.2.2.jar
jackson-core-2.2.2.jar
jackson-databind-2.2.2.jar
文件类型支持模块
http://repo1.maven.org/maven2/com/fasterxml/jackson/dataformat/
jackson-dataformat-xml-2.2.2.jar
导入库
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonEncoding;
import com.fasterxml.jackson.core.JsonParseException;
- /**
- * Map 转换为 json
- */
- public static void MyTest01()
- {
- Map<String, String> hashMap = new HashMap<String, String>();
- hashMap.put("name", "zhang");
- hashMap.put("sex", "1");
- hashMap.put("login", "Jack");
- hashMap.put("password", "123abc");
- try
- {
- ObjectMapper objectMapper = new ObjectMapper();
- String userMapJson = objectMapper.writeValueAsString(hashMap);
- JsonNode node = objectMapper.readTree(userMapJson);
- // 输出结果转意,输出正确的信息
- System.out.println(node.get("password").asText());
- // 输出不转意,输出结果会包含"",这是不正确的,除非作为json传递,如果是输出结果值,必须如上一行的操作
- System.out.println(node.get("name"));
- }
- catch (IOException e)
- {
- }
- }
- /**
- * 解析 json 格式字符串
- */
- public static void MyTest03()
- {
- try
- {
- String str = "{\"data\":{\"birth_day\":7,\"birth_month\":6},\"errcode\":0,\"msg\":\"ok\",\"ret\":0}";
- ObjectMapper mapper = new ObjectMapper();
- JsonNode root = mapper.readTree(str);
- JsonNode data = root.path("data");
- JsonNode birth_day = data.path("birth_day");
- System.out.println(birth_day.asInt());
- JsonNode birth_month = data.path("birth_month");
- System.out.println(birth_month.asInt());
- JsonNode msg = root.path("msg");
- System.out.println(msg.textValue());
- }
- catch (IOException e)
- {
- }
- }
- /**
- * json 直接提取 值
- */
- public static void MyTest05()
- {
- try
- {
- // 演示字符串
- String str = "{\"data\":{\"hasnext\":0,\"info\":[{\"id\":\"288206077664983\",\"timestamp\":1371052476},{\"id\":\"186983078111768\",\"timestamp\":1370944068},{\"id\":\"297031120529307\",\"timestamp\":1370751789},{\"id\":\"273831022294863\",\"timestamp\":1369994812}],\"timestamp\":1374562897,\"totalnum\":422},\"errcode\":0,\"msg\":\"ok\",\"ret\":0,\"seqid\":5903702688915195270}";
- ObjectMapper mapper = new ObjectMapper();
- JsonNode root = mapper.readTree(str);
- // 提取 data
- JsonNode data = root.path("data");
- // 提取 info
- JsonNode info = data.path("info");
- System.out.println(info.size());
- // 得到 info 的第 0 个
- JsonNode item = info.get(0);
- System.out.println(item.get("id"));
- System.out.println(item.get("timestamp"));
- // 得到 info 的第 2 个
- item = info.get(2);
- System.out.println(item.get("id"));
- System.out.println(item.get("timestamp"));
- // 遍历 info 内的 array
- if (info.isArray())
- {
- for (JsonNode objNode : info)
- {
- System.out.println(objNode);
- }
- }
- }
- catch (Exception e)
- {
- }
- }
- /**
- * 创建一个 json,并向该 json 添加内容
- */
- public static void MyTest07()
- {
- try
- {
- ObjectMapper mapper = new ObjectMapper();
- ObjectNode root1 = mapper.createObjectNode();
- root1.put("nodekey1", 1);
- root1.put("nodekey2", 2);
- System.out.println(root1.toString());
- //Create the root node
- ObjectNode root = mapper.createObjectNode ();
- //Create a child node
- ObjectNode node1 = mapper.createObjectNode ();
- node1.put ("nodekey1", 1);
- node1.put ("nodekey2", 2);
- //Bind the child nodes
- root.put ("child", node1);
- //Array of nodes
- ArrayNode arrayNode = mapper.createArrayNode ();
- arrayNode.add (node1);
- arrayNode.add (1);
- //Bind array node
- root.put ("arraynode", arrayNode);
- System.out.println (mapper.writeValueAsString (root));
- }
- catch (Exception e)
- {
- }
- }
参考资料
http://wiki.fasterxml.com/JacksonInFiveMinutes
- java Jackson 库操作 json 的基本演示
- java Jackson 库操作 json 的基本演示
- java Jackson 库操作 json 的基本演示
- java Jackson 库操作 json 的基本演示
- java Jackson 库操作 json 的基本演示
- java Jackson 库操作 json 的基本演示
- java Jackson 库操作 json 的基本演示
- java Jackson 库操作 json 的基本演示
- Java中Jackson库操作json的基本操作
- jackson的基本操作
- Jackson的json转换和Jackson Annotations 基本用法
- Java使用jackson操作Json格式数据
- java 操作json数据 fastjson jackson
- Jackson实现的json操作工具类
- Json学习(二):java和Jackson操作Json
- Jackson实现json与java的转化
- JackSon转换Java的Json使用方法
- Java JSON处理类库Jackson
- 天下武功彼此克制,武学之道玄之又玄
- Linux虚拟地址->物理地址
- javascript 判断是否为字符串对象
- 树莓派学习笔记—— 源代码方式安装opencv
- Linux系统库函数 -- lseek函数用法
- java Jackson 库操作 json 的基本演示
- SQLite -- 嵌入式关系型数据库
- UVa - 1312 - Cricket Field
- C++经典面试题(五)
- linux交叉工具链总结
- shell脚本编写存储过程(mysql)
- Construct Binary Tree from Preorder and Inorder Traversal
- Leetcode 227 Basic Calculator II
- 日志组件logback的介绍及配置使用方法