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对象的转换例子相关推荐

  1. Json对象与Json字符串的转化、JSON字符串与Java对象的转换

    一.Json对象与Json字符串的转化 1.jQuery插件支持的转换方式: $.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符 ...

  2. json java typeof_Json对象与Json字符串的转化、JSON字符串与Java对象的转换

    一.Json对象与Json字符串的转化 1.jQuery插件支持的转换方式: $.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符 ...

  3. JSON 字符串 与 java 对象的转换

    jsonLib 经典文章:http://json-lib.sourceforge.net/xref-test/net/sf/json/TestJSONObject.html // 引入相应的包 //j ...

  4. json字符串与java对象的相互转换(jackson)

    1.java对象转换为json字符串 package com.chichung.json;import com.fasterxml.jackson.core.JsonProcessingExcepti ...

  5. java中将json字符串_Java中JSON字符串与java对象的互换实例详解

    在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JSON等,JSON作为一个轻量级的数据格式比xml效率要高,XML需要很多的标签,这无疑占据了网络流量,JSON在这方面则做的很好, ...

  6. Java中JSON字符串与java对象的互换实例详解

    这篇文章主要介绍了在java中,JSON字符串与java对象的相互转换实例详解,非常不错,具有参考借鉴价值,需要的朋友可以参考下 在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JS ...

  7. 对象json字符串数组 java对象,java把json的字符串转换为json对象和数组

    [Json--使用Json jar包实现Json字符串与Java对象或集合之间的互相转换] 1,[java将JSON字符串转换为实体类对象 @SuppressWarnings(unchecked)pu ...

  8. Json——使用Json jar包实现Json字符串与Java对象或集合之间的互相转换

    总结一下利用Json相关jar包实现Java对象和集合与Json字符串之间的互相转换: 1.创建的User类: package com.ghj.packageofdomain;public class ...

  9. [JS]JSON字符串与JS对象的转换

    JSON字符串转换为JavaScript对象 使用JavaScript内置函数JSON.parse()将字符串转换为JavaScript对象 // JSON字符串 var text = '{" ...

最新文章

  1. redis实现对账(集合比较)功能
  2. HBase的安装与使用
  3. java的知识点32——多线程 并发同步的 性能分析、快乐影院  订票操作
  4. python 求函数最大值_遗传算法与Python图解
  5. python中main方法的用法_python __main__和__init__正确用法
  6. Eclipse上安装maven插件时出错
  7. 一周二次课(12月12日)
  8. android 菜鸟面单打印_Android TSC热敏标签打印机打印
  9. 基于Python的Climate Indices库计算SPEI(标准化降水蒸散发指数)03—单站点不同时间尺度的SPEI计算
  10. Android Tombstone/Crash的log分析和定位(墓碑文件)
  11. 聊聊生活中的一些仪式感
  12. 蓝牙键盘常用快捷键记录
  13. Unity零基础到入门 ☀️| 万字教程 对 Unity 中的 Navigation导航系统基础 全面解析+实战演练【收藏不迷路】
  14. 云e办学习笔记(十六)Redis集成菜单
  15. 聊天窗口内容滚动到底部的方法scrollTop和scrollIntoView
  16. 编译原理实验(三)词法语法分析综合设计
  17. 一筐鸡蛋一个一个拿正好拿完java_求解:一筐鸡蛋:9个9个拿正好拿完8个8个拿还剩1个...
  18. Javaweb学习(一)
  19. 使用QE中的ld1.x制作超软赝势
  20. 每日linux——more命令

热门文章

  1. 中国虚拟人哪家强?沙利文、IDC:小冰百度商汤位列第一梯队
  2. 如何用Python画奥运五环——circle()
  3. Thinkpad E431 蓝牙连接问题
  4. Python Fitter 判断数据样本的分布函数拟合
  5. 如何让你画里的鱼,游进海里?
  6. mvn No proxy was configured, downloading directly
  7. 在云计算行业内有什么证书比较有名?受市场认可大?
  8. 新开业和新签约酒店 | 上海中优城市万豪、杭州明豪voco酒店陆续开业;温德姆集团今年上半年签约59家亚太区新酒店...
  9. SAP 银企直连 常用事务代码,表名,类名
  10. swagger 的介绍和基本使用