第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > JsonGenerator写入JSON字符串 JsonParser解析JSON字符串

JsonGenerator写入JSON字符串 JsonParser解析JSON字符串

时间:2019-06-21 19:59:15

相关推荐

JsonGenerator写入JSON字符串 JsonParser解析JSON字符串

1、使用JsonGenerator写入JSON

package com.json;import java.io.File;import java.io.IOException;import java.util.Map;import org.codehaus.jackson.JsonEncoding;import org.codehaus.jackson.JsonFactory;import org.codehaus.jackson.JsonGenerator;import org.codehaus.jackson.JsonParseException;import org.codehaus.jackson.map.JsonMappingException;import org.codehaus.jackson.map.ObjectMapper;public class JacksonTester {public static void main(String args[]){JacksonTester tester = new JacksonTester();try { JsonFactory jasonFactory = new JsonFactory();//创建一个JsonGeneratorJsonGenerator jsonGenerator = jasonFactory.createJsonGenerator(new File("student.json"), JsonEncoding.UTF8);jsonGenerator.writeStartObject();jsonGenerator.writeStringField("name", "Mahesh Kumar"); jsonGenerator.writeNumberField("age", 21);jsonGenerator.writeBooleanField("verified", false); jsonGenerator.writeFieldName("marks"); jsonGenerator.writeStartArray(); 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"));//输出 // Mahesh Kumar// 21// false// [100, 90, 85]} catch (JsonParseException e) {e.printStackTrace();} catch (JsonMappingException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}}

2、使用JsonParser读取JSON

package com.json;import java.io.File;import java.io.IOException;import org.codehaus.jackson.JsonEncoding;import org.codehaus.jackson.JsonFactory;import org.codehaus.jackson.JsonGenerator;import org.codehaus.jackson.JsonParseException;import org.codehaus.jackson.JsonParser;import org.codehaus.jackson.JsonToken;import org.codehaus.jackson.map.JsonMappingException;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();jsonGenerator.writeStringField("name", "Mahesh Kumar"); jsonGenerator.writeNumberField("age", 21);jsonGenerator.writeBooleanField("verified", false); jsonGenerator.writeFieldName("marks"); jsonGenerator.writeStartArray(); // [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]//}JsonParser jsonParser = jasonFactory.createJsonParser(new File("student.json"));while (jsonParser.nextToken() != JsonToken.END_OBJECT) {//get the current tokenString fieldname = jsonParser.getCurrentName();if ("name".equals(fieldname)) {//move to next tokenjsonParser.nextToken();System.out.println(jsonParser.getText()); }if("age".equals(fieldname)){//move to next tokenjsonParser.nextToken();System.out.println(jsonParser.getNumberValue()); }if("verified".equals(fieldname)){//move to next tokenjsonParser.nextToken();System.out.println(jsonParser.getBooleanValue()); }if("marks".equals(fieldname)){//move to [ jsonParser.nextToken();// loop till token equal to "]"while (jsonParser.nextToken() != JsonToken.END_ARRAY) {System.out.println(jsonParser.getNumberValue()); }}}} catch (JsonParseException e) {e.printStackTrace();} catch (JsonMappingException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}}

文章出自:/jackson/

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。