`

Jackson学习三之使用Tree Model读取以及更新JSON

阅读更多

依然是使用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}

 

参考文章:

本文出自"lijingshou"博客,转载请务必保留此出处http://lijingshou.iteye.com/blog/2003112

分享到:
评论

相关推荐

    Jackson将json string转为Object,org.json读取json数组的实例

    描述中提到了一个实例,也就是使用Jackson库将JSON字符串转换为Java对象(Map),然后使用org.json库读取JSON数组。实例中说明了遇到的困难,即在使用Map读取第一级数据之后,尝试读取数组中的特定值时遇到了问题,...

    Springboot读取本地json文件工程

    下面,我们将依次讲解Spring Boot的基本概念、JSON文件的使用以及如何在Spring Boot中读取本地JSON文件。 首先,让我们了解一下Spring Boot。Spring Boot是Spring框架的一个扩展,它简化了创建独立的、生产级别的...

    json转换工具jackson

    Jackson是Java领域中处理JSON的主流库之一,由 FasterXML 组织开发,提供了高效且灵活的JSON序列化和反序列化功能。本文将深入探讨Jackson作为JSON转换工具的关键知识点,并基于提供的博文链接进行补充。 1. **...

    Java读取json文件,并转化为map取值

    接下来,我们将学习如何读取JSON文件并转换为Map。首先,创建一个Java类,例如`JsonToMapConverter`,然后定义一个方法来完成这个任务: ```java import com.fasterxml.jackson.databind.ObjectMapper; import java...

    使用Jackson框架解析Json示例

    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》学习笔记

    本篇学习笔记将深入探讨Jackson框架的核心概念和使用方法,帮助你轻松应对JSON与Java对象之间的转换。 1. Jackson简介 Jackson是由FasterXML团队开发的一个开源项目,其主要目标是提供高性能、高效率的JSON处理功能...

    Jackson JSON jar包

    Jackson JSON 是一个广泛使用的Java库,它为处理JSON数据提供了高效且灵活的工具。这个库由三个主要组件组成,这正是你压缩包中包含的三个jar文件:`jackson-databind-2.4.0.jar`、`jackson-core-2.4.0.jar` 和 `...

    jackson json

    jackson json jackson json jackson jsonjackson jsonjackson jsonjackson jsonjackson jsonjackson jsonjackson json

    Jackson 框架,轻易转换JSON

    Jackson是Java领域中广泛使用的JSON处理库,它提供了一套高效、灵活的API来解析、生成、序列化和反序列化JSON数据。Jackson框架的主要目标是简化JSON与Java对象之间的交互,使得开发者能够轻松地在Java应用中处理...

    使用Jackson在Java中处理JSON

    在Java开发中,JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,被广泛用于前后端交互。Jackson是Java领域最流行的JSON...学习并熟练掌握Jackson的使用,对于提升Java开发中的JSON处理能力大有裨益。

    Jackson 配置json解析器

    Jackson是Java领域中广泛使用的JSON处理库,它提供了一套高效、灵活的API来解析、生成、序列化和反序列化JSON数据。标题中的“Jackson配置json解析器”指的是使用Jackson库来设置和管理JSON数据的解析过程。在这个...

    spring使用jackson实现json

    而Jackson库则是处理JSON数据的利器,它能够帮助我们轻松地将Java对象序列化为JSON格式,以及将JSON反序列化为Java对象。在Spring框架中集成Jackson,可以实现高效且灵活的JSON数据交互。 一、Jackson简介 Jackson...

    Jackson 框架,轻易转换JSON(转)

    对于大数据量的处理,可以使用Jackson的Streaming API,它能高效地处理JSON输入输出,避免一次性加载整个JSON到内存中。 8. **模块(Module)**: Jackson有许多可选模块,如JAXB支持、Guava支持等,可以根据项目...

    Json 数据格式化 jackson

    Jackson是Java中最流行的JSON处理库之一,由FasterXML团队开发,提供了高效且灵活的方式来序列化和反序列化Java对象为JSON格式。 Jackson库主要由三个核心模块组成,这与提供的压缩包文件中的jar文件对应: 1. **...

    jackson操作json和javabean示例

    Jackson是Java领域中广泛使用的JSON处理库,它提供了多种方式来序列化和反序列化Java对象到JSON格式,以及从JSON数据还原Java对象。在这个名为"jackson操作json和javabean示例"的项目中,我们将深入探讨Jackson库的...

    递归循环读取省市区json文件数据,并保存到数据库中(很全面)

    Java提供了`org.json`库或其他第三方库如Gson、Jackson等,用于解析JSON数据。 5. **Java实体类**:这些类是用来映射数据库表的,每个类通常对应一个表,类的属性对应表的字段。在本例中,可能有Province、City和...

    Java四大json库gson+fastjson+jackson+json-lib

    尽管相比于其他库,json-lib的更新较慢,但在一些老项目中仍被广泛使用,因为它对旧版本的Java兼容性较好。 在选择使用哪个JSON库时,开发者通常会考虑性能、易用性、功能丰富度以及对特定需求的支持。例如,如果...

    json4s-jackson_2.11-3.2.11-API文档-中文版.zip

    赠送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对象的互相转换实例

    本实例将详细介绍如何使用Jackson库进行JSON到Java对象的反序列化以及Java对象到JSON的序列化。 首先,我们需要引入Jackson库。在Maven项目中,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;...

    使用jackson完成json与Java对象互转

    本文将详细介绍如何使用Jackson库进行JSON与Java对象的互转。 首先,我们需要引入Jackson库的依赖。对于Maven项目,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;com.fasterxml.jackson.core&lt;/groupId&gt; ...

Global site tag (gtag.js) - Google Analytics