public class JacksonTester {
  public static void main(String args[]){
   JacksonTester tester = new JacksonTester();
   try {    
     JsonFactory jasonFactory = new JsonFactory();
 
     JsonGenerator jsonGenerator = jasonFactory.createJsonGenerator(new File(
      "student.json"), JsonEncoding.UTF8);
     // {
     jsonGenerator.writeStartObject();
     // "name" : "Mahesh Kumar"
     jsonGenerator.writeStringField("name", "Mahesh Kumar");
     // "age" : 21
     jsonGenerator.writeNumberField("age", 21);
     // "verified" : false
     jsonGenerator.writeBooleanField("verified", false);
     // "marks" : [100, 90, 85]
     jsonGenerator.writeFieldName("marks");
     // [
     jsonGenerator.writeStartArray();
     // 100, 90, 85
     jsonGenerator.writeNumber(100);
     jsonGenerator.writeNumber(90);
     jsonGenerator.writeNumber(85);
     // ]
     jsonGenerator.writeEndArray();
     // }
     jsonGenerator.writeEndObject();
     jsonGenerator.close();    
 
     //result student.json
     //{
     //  "name":"Mahesh Kumar",
     //  "age":21,
     //  "verified":false,
     //  "marks":[100,90,85]
     //}
     ObjectMapper mapper = new ObjectMapper();
     Map<String,Object> dataMap = mapper.readValue(new File("student.json"), Map.class);
 
     System.out.println(dataMap.get("name"));
     System.out.println(dataMap.get("age"));
     System.out.println(dataMap.get("verified"));
     System.out.println(dataMap.get("marks"));
   } catch (JsonParseException e) {
     e.printStackTrace();
   } catch (JsonMappingException e) {
     e.printStackTrace();
   } catch (IOException e) {
     e.printStackTrace();
   }
  }
}
 
 
 
 
junit test
public class JsonStreamTest {
    @Test
    public void read() throws JsonParseException, IOException{
        JsonFactory factory = new JsonFactory();
        InputStream is = this.getClass().getClassLoader().getResourceAsStream("user.json");
        JsonParser jsonParse = factory.createJsonParser(is);
        User user = new User();
        JsonToken token = jsonParse.nextToken();
        if(token==JsonToken.START_OBJECT){
            while((jsonParse.nextToken())!=JsonToken.END_OBJECT){
                String fieldName = jsonParse.getCurrentName();
                jsonParse.nextToken();
                if("name".equalsIgnoreCase(fieldName)){
                    Name name = new Name();
                    while(jsonParse.nextToken()!=JsonToken.END_OBJECT){
                        if(jsonParse.getCurrentName().equals("first")){
                            name.setFirst(jsonParse.getText());
                        }
                        if(jsonParse.getCurrentName().equals("last")){
                            name.setLast(jsonParse.getText());
                        }
                    }
                    user.setName(name);
                }else if("gender".equals(fieldName)){
                    String text = jsonParse.getText();
                    user.setGender(Gender.valueOf(text));
                }else if("verified".equals(fieldName)){
                    user.setVerified(jsonParse.getBooleanValue());
                }else if("userImage".equals(fieldName)){
                    user.setUserImage(jsonParse.getBinaryValue());
                }
            }
        }
        jsonParse.close();
    }

Jackson流式API的更多相关文章

  1. jackson 流式API

    http://www.cnblogs.com/lee0oo0/articles/2652528.html Jackson提供了三种可选的JSON处理方法 1.流式API     com.fasterx ...

  2. Java8 流式 API(`java.util.stream`)

    熟悉 ES6 的开发者,肯定对数组的一些方法不是很陌生:map.filter 等.在对一组对象进行统一操作时,利用这些方法写出来的代码比常规的迭代代码更加的简练.在 C♯ 中,有 LINQ 来实现.那 ...

  3. Hadoop_11_HDFS的流式 API 操作

    对于MapReduce等框架来说,需要有一套更底层的API来获取某个指定文件中的一部分数据,而不是一整个文件 因此使用流的方式来操作 HDFS上的文件,可以实现读取指定偏移量范围的数据 1.客户端测试 ...

  4. Go 通过 Map/Filter/ForEach 等流式 API 高效处理数据

    什么是流处理 如果有 java 使用经验的同学一定会对 java8 的 Stream 赞不绝口,极大的提高了们对于集合类型数据的处理能力. int sum = widgets.stream() .fi ...

  5. lambda表达式以及stream流式api用法

    https://www.cnblogs.com/aoeiuv/p/5911692.html 这篇文章讲的简单全面,记录下 kotlin一些符号的用法 https://www.cnblogs.com/l ...

  6. java JAXB + STAX(是一种针对XML的流式拉分析API)读取xml

    JDK1.5需要添加jar包,1.6以后就不需要了<dependency> <groupId>stax</groupId> <artifactId>st ...

  7. 使用flink Table &Sql api来构建批量和流式应用(2)Table API概述

    从flink的官方文档,我们知道flink的编程模型分为四层,sql层是最高层的api,Table api是中间层,DataStream/DataSet Api 是核心,stateful Stream ...

  8. 使用flink Table &Sql api来构建批量和流式应用(3)Flink Sql 使用

    从flink的官方文档,我们知道flink的编程模型分为四层,sql层是最高层的api,Table api是中间层,DataStream/DataSet Api 是核心,stateful Stream ...

  9. FunDA(2)- Streaming Data Operation:流式数据操作

    在上一集的讨论里我们介绍并实现了强类型返回结果行.使用强类型主要的目的是当我们把后端数据库SQL批次操作搬到内存里转变成数据流式按行操作时能更方便.准确.高效地选定数据字段.在上集讨论示范里我们用集合 ...

随机推荐

  1. 安装 Tensorflow

    环境:Ubuntu 16.04  64bit 1.    安装Anaconda Anaconda 是 Python 的一个科学计算发行版,内置了数百个Python经常会使用的库,也包括了许多机器学习和 ...

  2. Android+openCV 动态人脸检测

    动态人脸检测前提是需要打开摄像头. 网上看了很多教程,我知道的有两种方式打开摄像头: JavaCameraView mCameraView = new JavaCameraView(this, -1) ...

  3. 树莓派做coolpy服务器

    安装前需要了解的 1. coolpy是一个基于NodeJS的物联网平台(官网http://icoolpy.com). 注:国内物联网平台有乐联网,yeelink等,但只有coolpy是开源的. 2. ...

  4. shullfe机制详解

    一.shuffle机制概述 shuffle机制就是发生在MR程序中,Mapper之后,Reducer之前的一系列分区排序的操作.shuffle的作用是为了保证Reducer收到的数据都是按键排序的. ...

  5. Spring Data JPA入门

    1. Spring Data JPA是什么 它是Spring基于ORM框架.JPA规范封装的一套JPA应用框架,可使开发者用极简的代码即可实现对数据的访问和操作.它提供了包括增删改查等在内的常用功能, ...

  6. port bridge enable命令导致的环路

    1.故障描述 前几天机房一台连接数据中心与核心交换的交换机宕机(硬件故障),机房有备用的设备,随即更换(配置也是早就配置好了的),但是下午就出现数据中心网络丢包问题,表现为存在mac漂移 2.拓扑 核 ...

  7. flash上传头像,截取图像 组件演示

    效果图如下: HTML页面代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http:// ...

  8. BZOJ 5104

    这个模数比较有趣 可以求出 $\sqrt{5}$ 然后就可以做了 $f_n=\dfrac{\sqrt{5}}{5}[(\dfrac{\sqrt{5}+1}{2})^n-(\dfrac{1-\sqrt{ ...

  9. Yii2 验证规则

    验证器的使用方法: public function rules() { return [ [['email', 'password'], 'required'], ['password', 'stri ...

  10. HBase scan 时 异常 ScannerTimeoutException 解决

    org.apache.Hadoop.hbase.client.ScannerTimeoutException: 60622ms passed since the last invocation, ti ...