1. 程式人生 > >[轉]jackson json字串、map、java物件的轉換例子

[轉]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字串mapjava物件轉換例子

ackson框架 json字串、map、java物件的轉換例子 先下載框架jar包: 下面是一些例子: package jackson; import java.io.File; import java.io.FileInputStream; import java.

json字串與ObjectListMap的互工具類

package com.cq2022.zago.base.util; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.Stri

微信小程式:jsonmap字串轉換

/**    *    * 字串轉json   */     function stringToJson(data){ &nbs

Java集合類: SetListMapQueue使用場景梳理

轉自: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字串和JavaBeanListMap及複雜集合型別的相互轉換

本文主要示例兩部分內容: JavaBean、List、Map、複雜集合 轉換成 json字串; json字串 轉換成 JavaBean、List、Map、複雜集合; 定義POJO: public class A { private Str

Java中將JSON格式的資料轉換成對應的BeanMapList資料

簡單說明: 為了方便資料在客戶端及伺服器端的傳輸,有時候我們會用一些比較方便組織的資料型別,比如json、xml等傳給客戶端,客戶端也可以重新組織資料傳回伺服器端。JSON和XML提供了一套比較方便的資料組織形式。。並且有很多現成的類庫用於解析這些資料。。 本文是對n

使用FastJson在JSON字串JSON物件及JavaBeanMap之間的相互轉換

fastJson對於json格式字串的解析主要用到了一下三個類: JSON:fastJson的解析器,用於JSON格式字串與JSON物件及javaBean之間的轉換。 JSONObject:fastJson提供的json物件。 JSONArray:fastJson提

Java集合SetMapHashSetHashMapTreeSetTreeMap等

程序 對待 tro value treeset mov str ble collect 1、Set和Map的關系: Set代表一種集合元素無序、不可重復的集合,Map代表一種由多個key-value對組成的集合。 Set的集合繼承體系: Map關系集合 Map

【redis,1】java操作redis: 將stringlistmap自己定義的對象保存到redis中

n) spa 存儲 div ber sys mil 操作 write 一、操作string 、list 、map 對象 1、引入jar: jedis-2.1.0.jar 2、代碼 /

xstream--xml工具類--java物件轉換JSONObjectxml與java物件

工作環境: myeclipse2013、jdk1.8、fastjson1.1.41、xstream1.4.3 import java.io.ByteArrayInputStream; import java.io.InputStream; import java.io.Writer;

【小家javaJava之Apache Commons-Collections4使用精講(含有BagMapListSet全覆蓋)

相關閱讀 【小家java】java5新特性(簡述十大新特性) 重要一躍 【小家java】java6新特性(簡述十大新特性) 雞肋升級 【小家java】java7新特性(簡述八大新特性) 不溫不火 【小家java】java8新特性(簡述十大新特性) 飽受讚譽 【小家java】java9

Java集合總結(ListMapSet)

集合的引入  當我們有種需求,需要儲存多個元素的結構時,我們前面講過陣列,陣列可以儲存。但是陣列也有它的弊端,使用的時候,必須先定義好長度,也就是陣列的長度是固定,不能根據我們的需求自動變長或者變短。 我們看一個例項:先定義一個Student類: 1 public class Stud

Java核心資料結構(ListMapSet)原理與使用技巧

JDK提供了一組主要的資料結構實現,如List、Map、Set等常用資料結構。這些資料都繼承自java.util.Collection介面,並位於java.util包內。 一、List介面 最重要的三種List介面實現:ArrayList、Vector、LinkedList。它們的類圖如

Java集合Collection之遍歷方法總結(ListMapSet)

一、簡介 實際專案中,通常會用到迴圈遍歷List、Map等,今天有空總結了一下List/Map/Set的遍歷方法,如下: 二、List遍歷 List遍歷的方法一般有三種:  【a】使用普通的for迴圈; 【b】使用增強for迴圈; 【c】使用Iterator介

Gson的使用以及JsonBeanMapList之間的轉換

1、使用Gson將String(json)轉換成bean: String data = bundle.getString("cardData"); Gson gson = new Gson(); CheckOrderBean orderBean = gson.fromJso

ES6中JsonStringMapObject之間的轉換

'use strict'; import React, {Component} from 'react' /** *JsonUitl的實現 */ class JsonUtils extends React.Component { /** *字串轉json * */ static stringToJs

Java 之路 (十一) -- 持有物件(CollectionListSetQueueMapIteratorforeach)

本章將簡單介紹一下常用的集合類的特點,同時並不會深入原始碼分析原理,本文目的僅僅在於對 Java 集合類有一個整體認識 關於 API,本文不涉及過多,建議直接檢視 Java 官方文件 1. 容器概述 1.1 引入原因 Java 中,陣列用

java基礎鞏固系列(九):持有物件之間的使用與關係(IterableCollectionListQueueSetMapStack)

總:Java提供了一套比較完整的容器類,基本型別是:List、Set、Queue、Map,這些物件型別稱為集合類。 一、介面繼承關係: Iterable介面,在java.lang包中,Collection、List、Queue、Set介面繼承Iterable介面 可以