Jackson JsonGenerator类

介绍JsonGenerator之前,首先简要说下Jackson。

Jackson常用的类:

  • JsonFactory:这个类是Jackson主要的工厂方法,主要用于配置和构建解析器(JsonParser)和生成器(如JsonGenerator),这个工厂实例是线程安全的,如果有配置的话,可以重复使用。
  • JsonGenerator:这个类主要是用来生成Json格式的内容的,我们可以使用JsonFactory 的方法生成一个实例。
  • JsonParser:这个主要是用来读取Json格式的内容,并且完成解析操作的,我们可以使用JsonFactory的方法生成一个实例。
  • ObjectMapper:这个类提供了Java对象和Json之间的转化,主要通过JsonParser和JsonGenerator实例来完成实际的对Json数据的读写操作。

JsonGenerator类

JsonGenerator是定义公共API编写的Json内容的基类,使用JsonFactory实例的工厂方法创建实例。

JsonGenerator的使用案例如下所示:

package test;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.JsonGenerator;
import org.codehaus.jackson.map.ObjectMapper;

public class JsonGeneratorTest {
	
	public static void main(String[] args) throws JsonGenerationException, IOException {
		String ret = "";
		ByteArrayOutputStream bos = new ByteArrayOutputStream();
		
		ObjectMapper mapper = new ObjectMapper();
		JsonGenerator jg = mapper.getJsonFactory().createJsonGenerator(new PrintWriter(bos));
		
		jg.writeStartObject();
		
		jg.writeStringField("name", "zhaokaiqiang");
		jg.writeNumberField("age", 22);
		jg.writeObjectField("sex", "man");
		jg.writeArrayFieldStart("likes");
			jg.writeString("apple");
			jg.writeString("banner");
			jg.writeStartObject();
				jg.writeNumberField("index",1);
				jg.writeStringField("color","red");
			jg.writeEndObject();
			jg.writeStartObject();
				jg.writeNumberField("index",2);
				jg.writeStringField("color","green");
			jg.writeEndObject();
		jg.writeEndArray();
		
		jg.writeEndObject();
		
		jg.flush();
		jg.close();
		
		ret = bos.toString();
		bos.close();
		System.out.println(ret);

	}

}

运行代码输出结果如下图所示:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值