`
yaerfeng1989
  • 浏览: 231047 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

通过codehaus来实现json写入文件和读取文件成json对象

    博客分类:
  • java
阅读更多

pom.xml需要增加如下依赖:

<dependency> 
<groupId>org.codehaus.jackson</groupId> 
<artifactId>jackson-core-lgpl</artifactId> 
<version>1.9.1</version> 
</dependency> 
<dependency> 
<groupId>org.codehaus.jackson</groupId> 
<artifactId>jackson-mapper-lgpl</artifactId> 
<version>1.9.1</version> 
</dependency>

 

package com.zuidaima.json;

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.JsonParser;
import org.codehaus.jackson.JsonToken;
import org.codehaus.jackson.map.JsonMappingException;

public class JsonGeneratorAndParser {

    /**
     * @param args
     */
    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", "java牛"); // "name" : "java牛"
	    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();

	    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)) {

		    // current token is "name",
		    // move to next, which is "name"'s value
		    jParser.nextToken();
		    System.out.println(jParser.getText());

		}

		if ("age".equals(fieldname)) {

		    // current token is "age",
		    // move to next, which is "name"'s value
		    jParser.nextToken();
		    System.out.println(jParser.getIntValue()); // display 29

		}

		if ("messages".equals(fieldname)) {

		    jParser.nextToken(); // current token is "[", move next

		    // messages is array, loop until token equal to "]"
		    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();

	}

    }
}

	    			

 
转载请标明出处:通过codehaus来实现json写入文件和读取文件成json对象

分享到:
评论

相关推荐

    codehaus相关maven jar 包

    Jackson是一个高效的JSON处理器,提供了多种方式来序列化和反序列化Java对象。它的核心库是`jackson-core`,提供基本的JSON处理功能,如流式API和树模型。`jackson-databind`扩展了核心库,允许映射JSON到Java对象和...

    org.json.JSONObject 包下载

    总的来说,`org.json.JSONObject`是Java中处理JSON数据不可或缺的工具,它提供了简单易用的接口,使得JSON数据的处理变得直观和高效。在实际开发中,熟练掌握`JSONObject`的使用方法能极大地提高开发效率,并确保...

    springmvc加入json支持需要的jar包

    它包含了JSON流API,可以用来读取和写入JSON数据流。此外,它还提供了基本的JSON节点类型,如ObjectNode、ArrayNode等,以及JsonParser和JsonGenerator,这两个类分别用于解析JSON输入和生成JSON输出。 `jackson-...

    jettison-1.3.3.jar

    这对于RESTful服务来说非常关键,因为它们通常需要将服务器端的Java对象转化为JSON格式,以便客户端可以理解和消费。 3. 支持StAX(Streaming API for XML) Jettison利用StAX进行XML的流式处理,这使得处理大量...

    SpringMVC框架中传递JSON数据时前台报406错误解决办法

    这通常涉及到引入Jackson库,压缩包中的`jackson-mapper-asl-1.8.8.jar`和`jackson-core-asl-1.8.8.jar`是Jackson 1.8.8版本的两个关键组件,它们分别提供了对象到JSON的映射和JSON的解析功能。要使Spring MVC支持...

    jackson json 转 map 数值科学计数法的问题解决.docx

    Jackson JSON 转 Map 之科学计数法问题解决方案 Jackson 是一个流行的 ...通过启用 USE_BIG_DECIMAL_FOR_FLOATS 选项,我们可以解决 Jackson 将 JSON 转换为 Map 时的科学计数法的问题,从而确保数据的精度和正确性。

    jackson-jar

    通过 org.codehaus.jackson.JsonParser读取,通过org.codehaus.jackson.JsonGenerator写入。 2) Tree Model 通过基于内存的树形结构来描述json数据,和 XML DOM类似。通过org.codehaus.jackson.map.ObjectMapper...

    json数据解析ObjectMapper类需要使用的jar包

    json数据解析ObjectMapper类需要使用的jar包 org.codehaus.jackson.map.ObjectMapper jackson-mapper-asl-1.9.13.jar

    Jackson高性能的JSON处理.rar

    Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。 前面有介绍过json-lib这个框架,在线博文:http://www.cnblogs.com/hoojo/archive/2011/04/21/2023805.html 相比...

    jackson-module-jsonSchema-2.6.5.zip

    Jackson是Java领域中广泛使用的JSON处理库,它提供了一套高效、灵活的API来解析、生成、序列化和反序列化JSON数据。Jackson-module-jsonSchema是Jackson生态中的一个附加模块,其主要功能是将Java对象转换为JSON ...

    jettison-1.1.jar.zip

    例如,`org.codehaus.jettison.json.JSONObject`类提供了创建和操作JSON对象的方法,而`org.codehaus.jettison.mapped.MappedXMLStreamWriter`则负责将Java对象转换为XML,进一步可以转换成JSON格式。 Maven作为...

    spring3.x前后端使用json传输数据

    `@RequestBody`和`@ResponseBody`依赖于Spring的核心组件ConversionService,它负责将JSON字符串解析为User对象,并将User对象转换为JSON响应。 总结起来,Spring 3.x中通过JSON进行前后端数据传输主要涉及以下几个...

    Json字符串与Object、List、Map的互转工具类

    《Json字符串与Object、...通过这些工具方法,开发者可以轻松地处理JSON数据,无论是从网络获取还是本地文件读取,或者将Java对象序列化为JSON格式。理解并熟练运用这些工具类,对于提升开发效率和代码质量都至关重要。

    jackson jar包

    2. **jackson-databind**:这个模块是Jackson的核心,它扩展了core模块的功能,实现了对象到JSON和JSON到对象的映射。通过`@JsonProperty`、`@JsonInclude`等注解,可以方便地将Java对象转换为JSON格式,并能将JSON...

    详解json string转换为java bean及实例代码.docx

    通过上述示例,我们可以看到 JSON 数据被成功地转换成了 Java Bean 对象,并且可以通过 Java Bean 的方法来获取各个字段的值。 #### 五、总结 本文详细介绍了如何将 JSON 数据转换为 Java Bean,包括了所需库的...

    jackson 完整Jar包

    Jackson fasterxml和codehaus的区别: ...Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。 官网:http://wiki.fasterxml.com/JacksonHome 三个主要的模块: jackson-co

    org.codehaus.jackson.mapper.jar

    org.codehaus.jackson.mapper.jar,亲测可用的jar包!

    jackson-core-asl-1.7.2.zip

    它们提供了丰富的API来读写JSON的各种数据类型,如字符串、数字、对象和数组。 2. `ObjectMapper`:Jackson的标志性类,它是数据绑定的核心,可以将Java对象直接转换为JSON,反之亦然。通过`readValue()`和`...

    jackson-all-1.9.0.jar,jackson-all-1.9.9.jar,jackson-all-1.9.11.jar

    在Spring MVC中,Jackson库通常通过配置可以无缝集成,使得Controller方法可以直接返回Java对象,而Spring会自动将其转换为JSON响应。 `jackson-all-1.9.x.jar` 文件是Jackson库的旧版本,其中包含所有必要的模块,...

    org.codehaus.groovy-2.9.0.xx-201407142235-e44-RELEASE-updatesite.zip

    标题 "org.codehaus.groovy-2.9.0.xx-201407142235-e44-RELEASE-updatesite.zip" 暗示了这是一个与Groovy编程语言相关的Eclipse插件的更新站点压缩包。这个版本号 "2.9.0" 表明这是该插件的2.9.0版,时间戳 ...

Global site tag (gtag.js) - Google Analytics