`

jackson中的写和解析JSON的api例子

阅读更多
本次介绍的是在jackson中,如何去写和解析json,其中用到的都是jackson自己的
流的API.

1 JACKSON中写一个json文件使用的是JsonGenerator类,
import java.io.File;
import java.io.IOException;
import org.codehaus.jackson.JsonEncoding;
import org.codehaus.jackson.JsonFactory;
import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.JsonGenerator;
import org.codehaus.jackson.map.JsonMappingException;
 
public class JacksonStreamExample {
   public static void main(String[] args) {
 
     try {
 
	JsonFactory jfactory = new JsonFactory();
 
	/*** write to file ***/
	JsonGenerator jGenerator = jfactory.createJsonGenerator(new File(
			"c:\\user.json"), JsonEncoding.UTF8);
	jGenerator.writeStartObject(); // {
 
	jGenerator.writeStringField("name", "mkyong"); // "name" : "mkyong"
	jGenerator.writeNumberField("age", 29); // "age" : 29
 
	jGenerator.writeFieldName("messages"); // "messages" :
	jGenerator.writeStartArray(); // [
 
	jGenerator.writeString("msg 1"); // "msg 1"
	jGenerator.writeString("msg 2"); // "msg 2"
	jGenerator.writeString("msg 3"); // "msg 3"
 
	jGenerator.writeEndArray(); // ]
 
	jGenerator.writeEndObject(); // }
 
	jGenerator.close();
 
     } catch (JsonGenerationException e) {
 
	e.printStackTrace();
 
     } catch (JsonMappingException e) {
 
	e.printStackTrace();
 
     } catch (IOException e) {
 
	e.printStackTrace();
 
     }
 
   }
 
}

输出为:
{
"name":"mkyong",
"age":29,
"messages":["msg 1","msg 2","msg 3"]
}
2 解析JSON
  我们把上面输出的JSON文件重新读取出来,再解析, 注意在json中,解析是以TOKEN方式进行的,比如:
  {
   "name":"mkyong"
}
将为解析为:
  Token 1 = “{“
Token 2 = “name”
Token 3 = “mkyong”
Token 4 = “}”

代码:
 
import java.io.File;
import java.io.IOException;
import org.codehaus.jackson.JsonFactory;
import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.JsonParser;
import org.codehaus.jackson.JsonToken;
import org.codehaus.jackson.map.JsonMappingException;
 
public class JacksonStreamExample {
   public static void main(String[] args) {
 
     try {
 
	JsonFactory jfactory = new JsonFactory();
 
	/*** read from file ***/
	JsonParser jParser = jfactory.createJsonParser(new File("c:\\user.json"));
 
	// loop until token equal to "}"
	while (jParser.nextToken() != JsonToken.END_OBJECT) {
 
		String fieldname = jParser.getCurrentName();
		if ("name".equals(fieldname)) {
 
		  
                  //当前结点为name 
		  jParser.nextToken();
		  System.out.println(jParser.getText()); // 输出 mkyong
 
		}
 
		if ("age".equals(fieldname)) {
 
		  // 当前结点为age 
                  // move to next, which is "name"'s value
		  jParser.nextToken();
		  System.out.println(jParser.getIntValue()); // display 29
 
		}
 
		if ("messages".equals(fieldname)) {
 
		  jParser.nextToken(); 
		  while (jParser.nextToken() != JsonToken.END_ARRAY) {
 
                     // display msg1, msg2, msg3
		     System.out.println(jParser.getText()); 
 
		  }
 
		}
 
	  }
	  jParser.close();
 
     } catch (JsonGenerationException e) {
 
	  e.printStackTrace();
 
     } catch (JsonMappingException e) {
 
	  e.printStackTrace();
 
     } catch (IOException e) {
 
	  e.printStackTrace();
 
     }
 
  }
 
}

最后输出:
mkyong
29
msg 1
msg 2
msg 3
3
13
分享到:
评论
3 楼 a603473186 2014-11-17  
如果想获取Json节点Json对象 用Jackson该怎么获取
2 楼 yeruowei 2013-11-07  
savon_cn 写道
http://www.mkyong.com/java/jackson-streaming-api-to-read-and-write-json/

转载也要说一声吧

1 楼 savon_cn 2012-06-16  
http://www.mkyong.com/java/jackson-streaming-api-to-read-and-write-json/

转载也要说一声吧

相关推荐

    java 解析 json文件 java 解析 json文件

    以下是一个使用Jackson解析JSON文件的例子: ```java import com.fasterxml.jackson.databind.ObjectMapper; import java.io.File; import java.io.IOException; public class JsonExample { public static void ...

    Android JackSon解析JSON

    现在我们有了一个可序列化的Java对象,可以开始解析JSON字符串了。假设我们有一个JSON字符串: ```json { "name": "John Doe", "age": 30 } ``` 我们可以使用`ObjectMapper`类来实现这个过程: ```java import ...

    android JSon解析例子

    在Android中,解析JSON数据是开发过程中的常见任务,涉及将接收到的JSON字符串转化为Java对象或者将Java对象序列化为JSON字符串。 一、Android JSON解析库 Android SDK本身提供了`org.json`包,包含`JSONObject`和`...

    java解析json完整案例

    在这个例子中,我们首先创建了一个`JSONObject`实例,然后通过`getString`和`getInt`方法获取JSON对象中的值。 如果JSON数据是数组形式,我们可以使用`JSONArray`类来处理。例如: ```json [ { "name": "John", ...

    Jackson进行JSON解析和序列化jar包

    3. **JsonParser**和**JsonGenerator**:这两个接口分别用于解析JSON输入流和生成JSON输出流。它们提供了低级别的API,适合于更复杂或性能敏感的场景。 4. **注解支持**:Jackson库支持大量的注解,如`@...

    解析json的jar包:jackson-core2.9.9、jackson-annotations2.9.9、jackson-databind2.9.9

    在这个例子中,`ObjectMapper`的`readValue`方法将JSON字符串转换为了一个`Person`对象。类似的,你可以用`writeValueAsString`方法将一个Java对象转化为JSON字符串。 总的来说,Jackson库为Java开发提供了强大的...

    Json.zip_JSON_java解析json

    它提供了多种API,如`ObjectMapper`,`JsonParser`和`JsonGenerator`,分别用于对象与JSON间的映射、解析JSON和生成JSON。 2. **解析JSON** - `ObjectMapper`是Jackson的核心类,它可以将JSON字符串映射到Java对象...

    Java下利用Jackson进行JSON解析和序列化示例

    接下来,文章中给出了一些示例,展示如何使用Jackson进行JSON的序列化和反序列化。首先是一个User类,它是一个简单的JavaBean,包含了name、age、birthday和email四个属性。在进行JSON操作之前,需要引入必要的Java...

    java实现http请求以及解析json与java对象转换 项目源代码实例

    项目源代码可能会包含如何创建JSON对象、解析JSON字符串、映射到Java对象以及处理JSON数组的例子。 具体到这个"java实现http请求以及解析json与java对象转换"项目,你可以期待以下几个关键知识点: 1. **HTTP请求*...

    使用jackson完成json与java对象的互相转换实例

    在上述例子中,`password`字段不会出现在JSON中,`address`字段只有当其值不为null时才会被序列化。 4. **自定义类型转换** 对于复杂的类型转换,可以定义`JsonSerializer`和`JsonDeserializer`,或者使用`@...

    java实现JSON所需的jar、JSON文件读取、JSON文件持续写入【JSON.jar】+【JSON文件例子】

    这些库提供了一系列API,用于解析JSON字符串到Java对象,或者将Java对象转换为JSON格式。例如,Jackson库的`com.fasterxml.jackson.databind.ObjectMapper`类是进行JSON序列化和反序列化的关键工具。 对于JSON文件...

    Springmvc 解析json所需jar包

    以下是实现Spring MVC解析JSON所需的jar包及其作用: 1. **jackson-databind**:这是Jackson库的核心组件,提供了将Java对象转换为JSON和从JSON反序列化为Java对象的功能。例如,`ObjectMapper`类就是此包中的核心...

    Android XML和JSON解析代码

    在这个例子中,`MyApi`接口定义了网络请求方法,`MyResponse`是Gson映射的Java类。 ### 总结 XML和JSON解析是Android应用开发中不可或缺的部分,选择合适的解析方式取决于数据的大小、应用场景以及性能需求。DOM...

    Gson解析(List和Map)格式json数据 - CSDN博客1

    在这个例子中,我们定义了一个`City`类来表示JSON对象中的一个元素。然后,我们使用`Gson.fromJson()`方法,将JSON字符串转换为指定类型的列表。 ### 2. 解析Map格式的JSON数据 对于键值对组成的JSON数据,我们...

    android各种解析xml三种方式和json数据

    在Android开发中,XML和JSON是两种非常常见的数据交换格式,用于存储和传输结构化数据。本篇文章将详细探讨XML的三种解析方法以及JSON数据的解析。这些知识点对于初学者理解Android应用的数据处理至关重要。 首先,...

    JSON使用例子

    它基于JavaScript的一个子集,但语法简单明了,易于人阅读和编写,同时也易于机器解析和生成。JSON格式是独立于语言的,但与编程语言有着良好的互操作性,比如Java。 在Java中,我们通常使用一些库来处理JSON,如...

    JSON解析例子

    Java中有多种用于解析和操作JSON数据的库,包括但不限于:`org.json`, `Gson`, `Jackson`, 和 `JSON-P`, 本例中使用的是`net.sf.json`库,这是一个功能强大的JSON处理库,提供了`JSONObject`和`JSONArray`等类用于...

    Java解析Json所需的Jar包

    在这个例子中,User类需要有对应的getter和setter方法,Jackson会自动将对象转换为JSON字符串。 理解并熟练使用这些库对于Java开发者来说至关重要,特别是在处理Web服务、网络通信或者大数据应用时。每个库都有其...

    json转实体json解析post模拟请求

    在这个"json转实体json解析post模拟请求"的例子中,我们将探讨如何在实际应用中处理JSON数据,包括将JSON数据转换为程序中的实体对象,解析JSON以及模拟POST请求。 1. JSON到实体转换: 在Java等面向对象的语言中,...

    SringMVC的经典例子(集成日志、json解析功能)

    在这个经典例子中,我们将深入探讨如何集成日志框架log4j以及处理JSON数据解析。 1. **Spring MVC 框架基础** - **核心组件**:DispatcherServlet、Controller、ModelAndView、HandlerMapping、ViewResolver等。 ...

Global site tag (gtag.js) - Google Analytics