Jackson(一)Streaming API
来源:互联网 发布:360连接助理软件 编辑:程序博客网 时间:2024/05/17 07:29
Jackson包
实体类
public class Person implements Serializable { private static final long serialVersionUID = -4653164706668338935L; private int id; private String username; private String password; private Address address; private String[] hobby; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public Address getAddress() { return address; } public void setAddress(Address address) { this.address = address; } public String[] getHobby() { return hobby; } public void setHobby(String[] hobby) { this.hobby = hobby; } @Override public String toString() { return "Person [id=" + id + ", username=" + username + ", password=" + password + ", address=" + address + ", hobby=" + Arrays.toString(hobby) + "]"; }}public class Address implements Serializable { private static final long serialVersionUID = 1310389268587385235L; private String city; private String street; public Address() { super(); } public Address(String city, String street) { super(); this.city = city; this.street = street; } public String getCity() { return city; } public void setCity(String city) { this.city = city; } public String getStreet() { return street; } public void setStreet(String street) { this.street = street; } @Override public String toString() { return "Address [city=" + city + ", street=" + street + "]"; }}
JsonGenerator使用
@Testpublic void testJsonGenerator() throws IOException { //关键对象,可以重用 ObjectMapper mapper = new ObjectMapper(); //获得JsonFactory对象 JsonFactory factory = mapper.getFactory(); factory.configure(JsonGenerator.Feature.ESCAPE_NON_ASCII, true); //获得生成的json文件的根路径 String basePath = this.getClass().getClassLoader().getResource("").getPath().substring(1); JsonGenerator jsonGenerator = factory.createGenerator( new File(basePath+"generator.json"), JsonEncoding.UTF8); //格式化打印json文件 jsonGenerator.useDefaultPrettyPrinter(); //开启写对象模式 jsonGenerator.writeStartObject(); jsonGenerator.writeNumberField("id", 1006); jsonGenerator.writeStringField("username", "TangSanZang"); jsonGenerator.writeStringField("password", "jiubugaosuni"); jsonGenerator.writeObjectField("address", new Address("ShangHai", "NanJiangRoad")); jsonGenerator.writeArrayFieldStart("hobby"); jsonGenerator.writeString("eat"); jsonGenerator.writeString("drink"); jsonGenerator.writeString("football"); jsonGenerator.writeEndArray(); jsonGenerator.writeEndObject(); jsonGenerator.close();}
上面代码执行完毕后,生成的Json文件如下{ "id" : 1006, "username" : "TangSanZang", "password" : "jiubugaosuni", "address" : { "city" : "ShangHai", "street" : "NanJiangRoad" }, "hobby" : [ "eat", "drink", "football" ]}
JsonParser使用
@Testpublic void testJsonParser() throws IOException { //关键对象,可以重用 ObjectMapper mapper = new ObjectMapper(); //获得JsonFactory对象 JsonFactory factory = mapper.getFactory(); factory.configure(JsonParser.Feature.ALLOW_COMMENTS, true); factory.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true); factory.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true); InputStream in = this.getClass().getClassLoader().getResourceAsStream("generator.json"); JsonParser jsonParser = factory.createParser(in); //用于封装数据的实体类 Person person = new Person(); while(jsonParser.nextToken() != JsonToken.END_OBJECT){ String filedName = jsonParser.getCurrentName(); if("id".equals(filedName)){ jsonParser.nextToken(); person.setId(jsonParser.getValueAsInt()); } if("username".equals(filedName)){ jsonParser.nextToken(); person.setUsername(jsonParser.getValueAsString()); } if("password".equals(filedName)){ jsonParser.nextToken(); person.setPassword(jsonParser.getValueAsString()); } if("address".equals(filedName)){ Address address = new Address(); while(jsonParser.nextToken() != JsonToken.END_OBJECT){ String referenceFieldName = jsonParser.getCurrentName(); if("city".equals(referenceFieldName)){ jsonParser.nextToken(); address.setCity(jsonParser.getValueAsString()); } if("street".equals(referenceFieldName)){ jsonParser.nextToken(); address.setStreet(jsonParser.getValueAsString()); } } person.setAddress(address); } if("hobby".equals(filedName)){ StringBuilder builder = new StringBuilder(); jsonParser.nextToken(); while(jsonParser.nextToken() != JsonToken.END_ARRAY){ builder.append(jsonParser.getValueAsString()+","); } person.setHobby(builder.toString().split(",")); } } System.out.println(person); jsonParser.close();}
上面的代码执行完毕后,实体类封装了json数据Person [id=1006, username=TangSanZang, password=jiubugaosuni, address=Address [city=ShangHai, street=NanJiangRoad], hobby=[eat, drink, football]]
0 0
- Jackson(一)Streaming API
- Jackson Streaming API To Read And Write JSON
- jackson的使用(一)
- JSON之Jackson(一)
- spark-streaming入门(一)
- Spark Streaming笔记(一)
- WS-Security 中文问题&Stax(Streaming API for XML) (一)
- Spark(十) -- Spark Streaming API编程
- jackson 流式API
- HCatalog Streaming Mutation API
- Hadoop 实战之Streaming(一)
- Hadoop 实战之Streaming(一)
- RBP as a streaming server(一)
- Hadoop Streaming框架使用(一)
- Spark Streaming编程指南(一)
- Hadoop Streaming框架学习(一)
- Spark Streaming整合Kafka(一)
- Jackson 使用(一)
- 注册表设置IE代理
- 随机生成不重复字符串
- Android仿IOS AssistiveTouch(悬浮框的运用)
- Makefile 中的 $@, $^, $< , $? 符号
- Android中line-height不居中的解决办法
- Jackson(一)Streaming API
- IQueryFilter.whereclause屬性
- 三层架构多条件查询
- 设计模式——原型模式
- go语言web框架 beego初步使用笔记
- 常用正则表达式
- 代理模式
- AE刷新ReFresh
- 移动开发大作业————随手记(数据库和保存到SD卡操作)