依然是使用ObjectMapper,可以以类似读取DOM的方式读取JSON,请看例子:
package com.jingshou.jackson; import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; import java.util.Iterator; import org.apache.commons.io.IOUtils; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; public class JacksonTest4 { public static void main(String[] args) throws MalformedURLException, IOException { String url = "http://m.weather.com.cn/data/101210101.html"; String json = IOUtils.toString(new URL(url)); System.out.println(json); // Get rootNode and weather node; ObjectMapper m = new ObjectMapper(); JsonNode rootNode = m.readTree(json); JsonNode weaNode = rootNode.get("weatherinfo"); System.out.println(weaNode); System.out.println(weaNode.get("city")); System.out.println("***************************************"); // Use Iterator to traverse to tree Iterator<String> keys = weaNode.fieldNames(); while(keys.hasNext()){ String fieldName = keys.next(); System.out.println(fieldName + ": " + weaNode.get(fieldName).textValue()); } } }
运行结果:
{"weatherinfo":{"city":"杭州","city_en":"hangzhou","date_y":"2014年1月12日","date":"","week":"星期日","fchh":"11","cityid":"101210101"......} "杭州" *************************************** city: 杭州 city_en: hangzhou date_y: 2014年1月12日 date: week: 星期日 fchh: 11 cityid: 101210101 temp1: 5℃~0℃ temp2: 5℃~0℃ temp3: 6℃~-2℃ ........
以下是新建以及更新Tree Model的例子:
package com.jingshou.jackson; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.node.ObjectNode; public class JacksonTest5 { public static void main(String[] args) throws JsonProcessingException { ObjectMapper mapper = new ObjectMapper(); JsonNode rootNode = mapper.createObjectNode(); // will be of type ObjectNode ((ObjectNode) rootNode).put("name", "jingshou"); ((ObjectNode) rootNode).put("id", 523); ((ObjectNode) rootNode).put("age", 30); System.out.println(rootNode); String json = mapper.writeValueAsString(rootNode); System.out.println(json); ((ObjectNode) rootNode).remove("id"); System.out.println(rootNode); } }
运行结果:
{"name":"jingshou","id":523,"age":30} {"name":"jingshou","id":523,"age":30} {"name":"jingshou","age":30}
参考文章:
- http://www.studytrails.com/java/json/java-jackson-json-tree-parsing.jsp
- http://www.cowtowncoder.com/blog/archives/2011/08/entry_460.html
- http://wiki.fasterxml.com/JacksonTreeModel
本文出自"lijingshou"博客,转载请务必保留此出处http://lijingshou.iteye.com/blog/2003112
相关推荐
描述中提到了一个实例,也就是使用Jackson库将JSON字符串转换为Java对象(Map),然后使用org.json库读取JSON数组。实例中说明了遇到的困难,即在使用Map读取第一级数据之后,尝试读取数组中的特定值时遇到了问题,...
下面,我们将依次讲解Spring Boot的基本概念、JSON文件的使用以及如何在Spring Boot中读取本地JSON文件。 首先,让我们了解一下Spring Boot。Spring Boot是Spring框架的一个扩展,它简化了创建独立的、生产级别的...
Jackson是Java领域中处理JSON的主流库之一,由 FasterXML 组织开发,提供了高效且灵活的JSON序列化和反序列化功能。本文将深入探讨Jackson作为JSON转换工具的关键知识点,并基于提供的博文链接进行补充。 1. **...
接下来,我们将学习如何读取JSON文件并转换为Map。首先,创建一个Java类,例如`JsonToMapConverter`,然后定义一个方法来完成这个任务: ```java import com.fasterxml.jackson.databind.ObjectMapper; import java...
jackson-annotations-2.0.0.jar jackson-core-2.0.0.jar jackson-databind-2.0.0.jar json-lib-2.4-jdk15.jar
本篇学习笔记将深入探讨Jackson框架的核心概念和使用方法,帮助你轻松应对JSON与Java对象之间的转换。 1. Jackson简介 Jackson是由FasterXML团队开发的一个开源项目,其主要目标是提供高性能、高效率的JSON处理功能...
Jackson JSON 是一个广泛使用的Java库,它为处理JSON数据提供了高效且灵活的工具。这个库由三个主要组件组成,这正是你压缩包中包含的三个jar文件:`jackson-databind-2.4.0.jar`、`jackson-core-2.4.0.jar` 和 `...
jackson json jackson json jackson jsonjackson jsonjackson jsonjackson jsonjackson jsonjackson jsonjackson json
Jackson是Java领域中广泛使用的JSON处理库,它提供了一套高效、灵活的API来解析、生成、序列化和反序列化JSON数据。Jackson框架的主要目标是简化JSON与Java对象之间的交互,使得开发者能够轻松地在Java应用中处理...
在Java开发中,JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,被广泛用于前后端交互。Jackson是Java领域最流行的JSON...学习并熟练掌握Jackson的使用,对于提升Java开发中的JSON处理能力大有裨益。
Jackson是Java领域中广泛使用的JSON处理库,它提供了一套高效、灵活的API来解析、生成、序列化和反序列化JSON数据。标题中的“Jackson配置json解析器”指的是使用Jackson库来设置和管理JSON数据的解析过程。在这个...
而Jackson库则是处理JSON数据的利器,它能够帮助我们轻松地将Java对象序列化为JSON格式,以及将JSON反序列化为Java对象。在Spring框架中集成Jackson,可以实现高效且灵活的JSON数据交互。 一、Jackson简介 Jackson...
对于大数据量的处理,可以使用Jackson的Streaming API,它能高效地处理JSON输入输出,避免一次性加载整个JSON到内存中。 8. **模块(Module)**: Jackson有许多可选模块,如JAXB支持、Guava支持等,可以根据项目...
Jackson是Java中最流行的JSON处理库之一,由FasterXML团队开发,提供了高效且灵活的方式来序列化和反序列化Java对象为JSON格式。 Jackson库主要由三个核心模块组成,这与提供的压缩包文件中的jar文件对应: 1. **...
Jackson是Java领域中广泛使用的JSON处理库,它提供了多种方式来序列化和反序列化Java对象到JSON格式,以及从JSON数据还原Java对象。在这个名为"jackson操作json和javabean示例"的项目中,我们将深入探讨Jackson库的...
Java提供了`org.json`库或其他第三方库如Gson、Jackson等,用于解析JSON数据。 5. **Java实体类**:这些类是用来映射数据库表的,每个类通常对应一个表,类的属性对应表的字段。在本例中,可能有Province、City和...
尽管相比于其他库,json-lib的更新较慢,但在一些老项目中仍被广泛使用,因为它对旧版本的Java兼容性较好。 在选择使用哪个JSON库时,开发者通常会考虑性能、易用性、功能丰富度以及对特定需求的支持。例如,如果...
赠送jar包:json4s-jackson_2.11-3.2.11.jar; 赠送原API文档:json4s-jackson_2.11-3.2.11-javadoc.jar; 赠送源代码:json4s-jackson_2.11-3.2.11-sources.jar; 赠送Maven依赖信息文件:json4s-jackson_2.11-...
本实例将详细介绍如何使用Jackson库进行JSON到Java对象的反序列化以及Java对象到JSON的序列化。 首先,我们需要引入Jackson库。在Maven项目中,可以在pom.xml文件中添加以下依赖: ```xml <groupId>...
本文将详细介绍如何使用Jackson库进行JSON与Java对象的互转。 首先,我们需要引入Jackson库的依赖。对于Maven项目,可以在pom.xml文件中添加以下依赖: ```xml <groupId>com.fasterxml.jackson.core</groupId> ...