[轉]jackson json字串、map、java物件的轉換例子
ackson框架 json字串、map、java物件的轉換例子
先下載框架jar包:
下面是一些例子:
package jackson;
import java.io.File;
import java.io.FileInputStream;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import org.codehaus.jackson.JsonEncoding;
import org.codehaus.jackson.JsonFactory;
import org.codehaus.jackson.JsonGenerator;
import org.codehaus.jackson.JsonNode;
import org.codehaus.jackson.JsonParser;
import org.codehaus.jackson.JsonToken;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.node.ArrayNode;
import org.codehaus.jackson.node.ObjectNode;
import org.junit.Test;
public class Testjackson {
//@Test
public void test1(){
try{
ObjectMapper mapper = new ObjectMapper();
String jsonString = "{\"name\":\"Mahesh\", \"age\":21}";
//json字串轉物件
Student student = mapper.readValue(jsonString, Student.class);
System.out.println(student);
//物件轉json字串
jsonString = mapper.writeValueAsString(student);
System.out.println(jsonString);
//json字串轉為Map物件
Map map=mapper.readValue(jsonString, Map.class);
System.out.println(map);
}catch(Exception e) {
e.printStackTrace();
}
}
//@Test
public void test2(){
try{
Student student = new Student();
student.setAge(10);
student.setName("Mahesh");
ObjectMapper mapper = new ObjectMapper();
//將Java物件序列化到一個JSON檔案
mapper.writeValue(new File("d:/student.json"), student);
System.out.println("d:/student.json檔案生成結束");
//讀取JSON檔案轉換為物件
Student student2 = mapper.readValue(new File("student.json"), Student.class);
System.out.println(student2);
}catch(Exception e) {
e.printStackTrace();
}
}
//@Test
public void test3(){
try {
ObjectMapper mapper = new ObjectMapper();
Map<String,Object> studentDataMap = new HashMap<String,Object>();
int[] marks = {1,2,3};
Student student = new Student();
student.setAge(10);
student.setName("Mahesh");
studentDataMap.put("student", student);
studentDataMap.put("name", "Mahesh Kumar");
studentDataMap.put("verified", Boolean.FALSE);
studentDataMap.put("marks", marks);
//Map轉換為joson檔案
mapper.writeValue(new File("d:/student2.json"), studentDataMap);
//result student.json
//{
// "student":{"name":"Mahesh","age":10},
// "marks":[1,2,3],
// "verified":false,
// "name":"Mahesh Kumar"
//}
//json檔案轉換為map
studentDataMap = mapper.readValue(new File("d:/student2.json"), Map.class);
System.out.println(studentDataMap.get("student"));
System.out.println(studentDataMap.get("name"));
System.out.println(studentDataMap.get("verified"));
System.out.println(studentDataMap.get("marks"));
} catch (Exception e) {
e.printStackTrace();
}
}
//@Test//樹遍歷
public void test4(){
try {
ObjectMapper mapper = new ObjectMapper();
String jsonString = "{\"name\":\"Mahesh Kumar\", \"age\":21,\"verified\":false,\"marks\": [100,90,85]}";
JsonNode rootNode = mapper.readTree(jsonString);
JsonNode nameNode = rootNode.path("name");
System.out.println("Name: "+ nameNode.getTextValue());
JsonNode ageNode = rootNode.path("age");
System.out.println("Age: " + ageNode.getIntValue());
JsonNode verifiedNode = rootNode.path("verified");
System.out.println("Verified: " + (verifiedNode.getBooleanValue() ? "Yes":"No"));
JsonNode marksNode = rootNode.path("marks");
Iterator<JsonNode> iterator = marksNode.getElements();
System.out.print("Marks: [ ");
while (iterator.hasNext()) {
JsonNode marks = iterator.next();
System.out.print(marks.getIntValue() + " ");
}
System.out.println("]");
} catch (Exception e) {
e.printStackTrace();
}
}
//@Test//樹到JSON轉換
public void test5(){
try {
ObjectMapper mapper = new ObjectMapper();
JsonNode rootNode = mapper.createObjectNode();
JsonNode marksNode = mapper.createArrayNode();
((ArrayNode)marksNode).add(100);
((ArrayNode)marksNode).add(90);
((ArrayNode)marksNode).add(85);
((ObjectNode) rootNode).put("name", "Mahesh Kumar");
((ObjectNode) rootNode).put("age", 21);
((ObjectNode) rootNode).put("verified", false);
((ObjectNode) rootNode).put("marks",marksNode);
mapper.writeValue(new File("d:/student3.json"), rootNode);
rootNode = mapper.readTree(new FileInputStream("student.json"));
JsonNode nameNode = rootNode.path("name");
System.out.println("Name: "+ nameNode.getTextValue());
JsonNode ageNode = rootNode.path("age");
System.out.println("Age: " + ageNode.getIntValue());
JsonNode verifiedNode = rootNode.path("verified");
System.out.println("Verified: " + (verifiedNode.getBooleanValue() ? "Yes":"No"));
JsonNode marksNode1 = rootNode.path("marks");
Iterator<JsonNode> iterator = marksNode1.getElements();
System.out.print("Marks: [ ");
while (iterator.hasNext()) {
JsonNode marks = iterator.next();
System.out.print(marks.getIntValue() + " ");
}
System.out.println("]");
}catch (Exception e) {
e.printStackTrace();
}
}
//@Test//樹到java物件
public void test6(){
try {
ObjectMapper mapper = new ObjectMapper();
JsonNode rootNode = mapper.createObjectNode();
JsonNode marksNode = mapper.createArrayNode();
((ArrayNode)marksNode).add(100);
((ArrayNode)marksNode).add(90);
((ArrayNode)marksNode).add(85);
((ObjectNode) rootNode).put("name", "Mahesh Kumar");
((ObjectNode) rootNode).put("age", 21);
((ObjectNode) rootNode).put("verified", false);
((ObjectNode) rootNode).put("marks",marksNode);
mapper.writeValue(new File("student.json"), rootNode);
rootNode = mapper.readTree(new FileInputStream("student.json"));
Student2 student = mapper.treeToValue(rootNode, Student2.class);
System.out.println("Name: "+ student.getName());
System.out.println("Age: " + student.getAge());
System.out.println("Verified: " + (student.isVerified() ? "Yes":"No"));
System.out.println("Marks: "+Arrays.toString(student.getMarks()));
} catch (Exception e) {
e.printStackTrace();
}
}
@Test//Jackson流式API
public void test7(){
try {
JsonFactory jasonFactory = new JsonFactory();
JsonGenerator jsonGenerator = jasonFactory.createJsonGenerator(new File("d:/student7.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("d:/student7.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 (Exception e) {
e.printStackTrace();
}
}
@Test//使用JsonParser 讀取JSON
public void test8(){
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("d:/student7.json"));
while (jsonParser.nextToken() != JsonToken.END_OBJECT) {
//get the current token
String fieldname = jsonParser.getCurrentName();
if ("name".equals(fieldname)) {
//move to next token
jsonParser.nextToken();
System.out.println(jsonParser.getText());
}
if("age".equals(fieldname)){
//move to next token
jsonParser.nextToken();
System.out.println(jsonParser.getNumberValue());
}
if("verified".equals(fieldname)){
//move to next token
jsonParser.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 (Exception e) {
e.printStackTrace();
}
}
}
class Student2 {
String name;
int age;
boolean verified;
int[] marks;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public boolean isVerified() {
return verified;
}
public void setVerified(boolean verified) {
this.verified = verified;
}
public int[] getMarks() {
return marks;
}
public void setMarks(int[] marks) {
this.marks = marks;
}
}
---------------------
作者:GavinYCF
來源:CSDN
轉自原文:https://blog.csdn.net/yucaifu1989/article/details/46637005
相關推薦
[轉]jackson json字串、map、java物件的轉換例子
ackson框架 json字串、map、java物件的轉換例子 先下載框架jar包: 下面是一些例子: package jackson; import java.io.File; import java.io.FileInputStream; import java.
json字串與Object、List、Map的互轉工具類
package com.cq2022.zago.base.util; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.Stri
微信小程式:json、map、字串轉換
/** * * 字串轉json */ function stringToJson(data){ &nbs
轉:Java集合類: Set、List、Map、Queue使用場景梳理
轉自:https://www.cnblogs.com/LittleHann/p/3690187.html 本文主要關注Java程式設計中涉及到的各種集合類,以及它們的使用場景 相關學習資料 http://files.cnblogs.com/Little
Json物件與Json字串的轉化、JSON字串與Java物件的轉換
1.jQuery外掛支援的轉換方式: $.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以將json字串轉換成json物件 2.瀏覽器支援的轉換方式(Firefox,chrome,opera,safari
js中處理json Json物件與Json字串的轉化、JSON字串與Java物件的轉換
轉:https://www.cnblogs.com/zq-boke/p/5833387.html Json物件與Json字串的轉化、JSON字串與Java物件的轉換 一.Json物件與Json字串的轉化 1.jQuery外掛支援的轉換方式: $.pars
fastjson json字串和JavaBean、List、Map及複雜集合型別的相互轉換。
本文主要示例兩部分內容: JavaBean、List、Map、複雜集合 轉換成 json字串; json字串 轉換成 JavaBean、List、Map、複雜集合; 定義POJO: public class A { private Str
Java中將JSON格式的資料轉換成對應的Bean、Map、List資料
簡單說明: 為了方便資料在客戶端及伺服器端的傳輸,有時候我們會用一些比較方便組織的資料型別,比如json、xml等傳給客戶端,客戶端也可以重新組織資料傳回伺服器端。JSON和XML提供了一套比較方便的資料組織形式。。並且有很多現成的類庫用於解析這些資料。。 本文是對n
使用FastJson在JSON字串、JSON物件及JavaBean、Map之間的相互轉換
fastJson對於json格式字串的解析主要用到了一下三個類: JSON:fastJson的解析器,用於JSON格式字串與JSON物件及javaBean之間的轉換。 JSONObject:fastJson提供的json物件。 JSONArray:fastJson提
Java集合Set、Map、HashSet、HashMap、TreeSet、TreeMap等
程序 對待 tro value treeset mov str ble collect 1、Set和Map的關系: Set代表一種集合元素無序、不可重復的集合,Map代表一種由多個key-value對組成的集合。 Set的集合繼承體系: Map關系集合 Map
【redis,1】java操作redis: 將string、list、map、自己定義的對象保存到redis中
n) spa 存儲 div ber sys mil 操作 write 一、操作string 、list 、map 對象 1、引入jar: jedis-2.1.0.jar 2、代碼 /
xstream--xml工具類--java物件轉換JSONObject、xml與java物件互轉
工作環境: myeclipse2013、jdk1.8、fastjson1.1.41、xstream1.4.3 import java.io.ByteArrayInputStream; import java.io.InputStream; import java.io.Writer;
【小家java】Java之Apache Commons-Collections4使用精講(含有Bag、Map、List、Set全覆蓋)
相關閱讀 【小家java】java5新特性(簡述十大新特性) 重要一躍 【小家java】java6新特性(簡述十大新特性) 雞肋升級 【小家java】java7新特性(簡述八大新特性) 不溫不火 【小家java】java8新特性(簡述十大新特性) 飽受讚譽 【小家java】java9
Java集合總結(List、Map、Set)
集合的引入 當我們有種需求,需要儲存多個元素的結構時,我們前面講過陣列,陣列可以儲存。但是陣列也有它的弊端,使用的時候,必須先定義好長度,也就是陣列的長度是固定,不能根據我們的需求自動變長或者變短。 我們看一個例項:先定義一個Student類: 1 public class Stud
Java核心資料結構(List、Map、Set)原理與使用技巧
JDK提供了一組主要的資料結構實現,如List、Map、Set等常用資料結構。這些資料都繼承自java.util.Collection介面,並位於java.util包內。 一、List介面 最重要的三種List介面實現:ArrayList、Vector、LinkedList。它們的類圖如
Java集合Collection之遍歷方法總結(List、Map、Set)
一、簡介 實際專案中,通常會用到迴圈遍歷List、Map等,今天有空總結了一下List/Map/Set的遍歷方法,如下: 二、List遍歷 List遍歷的方法一般有三種: 【a】使用普通的for迴圈; 【b】使用增強for迴圈; 【c】使用Iterator介
Gson的使用以及Json、Bean、Map、List之間的轉換
1、使用Gson將String(json)轉換成bean: String data = bundle.getString("cardData"); Gson gson = new Gson(); CheckOrderBean orderBean = gson.fromJso
ES6中Json、String、Map、Object之間的轉換
'use strict'; import React, {Component} from 'react' /** *JsonUitl的實現 */ class JsonUtils extends React.Component { /** *字串轉json * */ static stringToJs
Java 之路 (十一) -- 持有物件(Collection、List、Set、Queue、Map、Iterator、foreach)
本章將簡單介紹一下常用的集合類的特點,同時並不會深入原始碼分析原理,本文目的僅僅在於對 Java 集合類有一個整體認識 關於 API,本文不涉及過多,建議直接檢視 Java 官方文件 1. 容器概述 1.1 引入原因 Java 中,陣列用
java基礎鞏固系列(九):持有物件之間的使用與關係(Iterable、Collection、List、Queue、Set、Map、Stack)
總:Java提供了一套比較完整的容器類,基本型別是:List、Set、Queue、Map,這些物件型別稱為集合類。 一、介面繼承關係: Iterable介面,在java.lang包中,Collection、List、Queue、Set介面繼承Iterable介面 可以