参考文章:http://www.mkyong.com/java/jackson-streaming-api-to-read-and-write-json/
例子中某些方法已经废弃,直接替换掉了,将原文两个例子放在一个类中:
package com.jingshou.jackson; import java.io.File; import java.io.IOException; import com.fasterxml.jackson.core.JsonEncoding; import com.fasterxml.jackson.core.JsonFactory; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.JsonToken; public class JacksonTest6 { public static void main(String[] args) throws IOException { JsonFactory jfactory = new JsonFactory(); /*** write to file ***/ JsonGenerator jGenerator = jfactory.createGenerator(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(); /*** read from file ***/ JsonParser jParser = jfactory.createParser(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()); // display mkyong } 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(); } }
小结:
- 对于性能要求高的程序,推荐使用流API,否则使用其他方法
- 不管是创建JsonGenerator还是JsonParser,都是使用JsonFactory
本文出自"lijingshou"博客,转载请务必保留此出处http://lijingshou.iteye.com/blog/2003580
相关推荐
主要介绍了解析Java的Jackson库中Streaming API的使用,Jackson被用于Java对象和JSON的互相转换,需要的朋友可以参考下
Unity读取StreamingAssets文件夹下的Json文件并解析,含Litjson.dll文件
目前维护的产品使用jackson处理json,现整理一下jackson相关资料,希望对初次接触jackson的新手有所帮助。 jackson主页: http://jackson.codehaus.org/ jackson document: ...
jackson-databind基于Jackson核心库构建,以简单易用和高性能著称,是目前最流行的JSON库之一。 jackson-databind的主要功能有: 1. ObjectMapper:jackson-databind的核心类,用于转换Java对象和JSON。使用简单,一般就一...
轻松使用Twitter Streaming API Twitter提供了一种流API,您可以使用它执行一些有趣的操作,例如侦听包含特定字符串或用户可能采取的操作的推文(例如,喜欢推文,关注某人……)。 该软件包使使用API非常容易...
包含翻译后的API文档:flink-streaming-java_2.11-1.13.2-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.apache.flink:flink-streaming-java_2.11:1.13.2; 标签:apache、flink、streaming、java、中文文档、...
包含翻译后的API文档:flink-streaming-java_2.12-1.14.3-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.apache.flink:flink-streaming-java_2.12:1.14.3; 标签:apache、flink、streaming、java、中文文档、...
说明:本篇讲的是Jackson的详细用法,Jackson工具类在文章最后,直接复制粘贴即可使用。 Jackson是公司中必用的组件之一,常用的还用阿里的Fastjson,但是由于一些原因bug与漏洞是在是太多,在注重安全的公司直接被...
前端开源库-streaming-json-stringify流式JSON stringify,流式JSON.stringify()。
Face Recognition(face_recognition) Using Hadoop Streaming API Face Recognition(face_recognition) Using Hadoop Streaming API
该项目包含使用的核心低级增量(“流”)解析器和生成器抽象。 它还包括处理JSON格式的处理程序类型(解析器,生成器)的默认实现。 核心抽象不是特定于JSON的,尽管由于历史原因,命名在许多地方的确包含“ JSON”...
该项目包含使用的核心低级增量(“流”)解析器和生成器抽象。 它还包括处理JSON格式的处理程序类型(解析器,生成器)的默认实现。 核心抽象不是特定于JSON的,尽管由于历史原因,命名在许多地方的确包含“ JSON”...
Api-twitter-streaming-api.zip,轻松使用twitter流api轻松使用twitter流api,一个api可以被认为是多个软件设备之间通信的指导手册。例如,api可用于web应用程序之间的数据库通信。通过提取实现并将数据放弃到对象中,...
包含翻译后的API文档:flink-streaming-java_2.11-1.10.0-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.apache.flink:flink-streaming-java_2.11:1.10.0; 标签:flink、11、streaming、apache、java_2、jar...
1 Unity 打包后各种路径处理! 2 正确读取StreamingAssets文件夹里面的文件 3 调用手机里面邮箱像指定的邮箱地址发送邮件 4 调用手机里面浏览器打开Html文件
包含翻译后的API文档:flink-streaming-java_2.11-1.13.2-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:org.apache.flink:flink-streaming-java_2.11:1.13.2; 标签:apache、flink、streaming、java、...
hbc (Hosebird Client)是Twitter Streaming API 的 Java 客户端开发包。主要特性:支持GZip、OAuth和分块(partitioning);自动重新连接,并进行适当的backfill计数;访问原始字节的有效负载;适时重新分配,并进行...
Api-laravel-twitter-streaming-api.zip,在laravel中轻松使用twitter流api在laravel应用中似乎可以使用twitter流api,一个api可以被认为是多个软件设备之间通信的指导手册。例如,api可用于web应用程序之间的数据库...
unity 在不同系统中下载跟读取StreamingAssets资源不同,这个脚本在ios跟安卓等移动设备中读取项目中的文档
包含翻译后的API文档:flink-streaming-java_2.12-1.14.3-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:org.apache.flink:flink-streaming-java_2.12:1.14.3; 标签:apache、flink、streaming、java、...