zoukankan      html  css  js  c++  java
  • java jackson map2json的使用

    How to convert Java Map to / from JSON (Jackson)

    Published: August 11, 2011 , Updated: August 11, 2011 , Author: mkyong

    In last Jackson example, we show you how to convert user define object to / from JSON data. This time, we are doing the same, but replace user define object with Map.

    Map is more suitable in a simple and short JSON processing, for complex JSON structure, you should always create an user defined object for easy maintainability.

    In this tutorial, we show you how to use Map to construct the JSON data, write it to file. And also how to read JSON from file, and display each value via Map.

    1. Write JSON to file

    Jackson example to use Map to construct the entire JSON data structure, then write it to file named “user.json“.

    import java.io.File;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    import org.codehaus.jackson.JsonGenerationException;
    import org.codehaus.jackson.map.JsonMappingException;
    import org.codehaus.jackson.map.ObjectMapper;
     
    public class JacksonExample {
         public static void main(String[] args) {
     
    	ObjectMapper mapper = new ObjectMapper();
     
    	Map<String, Object> userInMap = new HashMap<String, Object>();
    	userInMap.put("name", "mkyong");
    	userInMap.put("age", 29);
     
    	List<Object> list = new ArrayList<Object>();
    	list.add("msg 1");
    	list.add("msg 2");
    	list.add("msg 3");
     
    	userInMap.put("messages", list);
     
    	try {
     
    	  // write JSON to a file
    	  mapper.writeValue(new File("c:\\user.json"), userInMap);
     
    	} catch (JsonGenerationException e) {
    	  e.printStackTrace();
    	} catch (JsonMappingException e) {
    	  e.printStackTrace();
    	} catch (IOException e) {
    	  e.printStackTrace();
    	}
         }
    }

    Outputuser.json

    {
    	"age":29,
    	"name":"mkyong",
    	"messages":["msg 1","msg 2","msg 3"]
    }

    2. Read JSON from file

    Read JSON data from file, convert it to Map and display the values.

    import java.io.File;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.Map;
    import org.codehaus.jackson.JsonGenerationException;
    import org.codehaus.jackson.map.JsonMappingException;
    import org.codehaus.jackson.map.ObjectMapper;
    import org.codehaus.jackson.type.TypeReference;
     
    public class JacksonExample {
         public static void main(String[] args) {
     
    	ObjectMapper mapper = new ObjectMapper();
     
    	try {
     
    	   // read JSON from a file
    	   Map<String, Object> userInMap = mapper.readValue(
    		new File("c:\\user.json"), 
    		new TypeReference<Map<String, Object>>() {});
     
    	   System.out.println(userInMap.get("name"));
    	   System.out.println(userInMap.get("age"));
     
    	   ArrayList<String> list = 
    		(ArrayList<String>) userInMap.get("messages");
     
    	   for (String msg : list) {
    		System.out.println(msg);
    	   }
     
    	} catch (JsonGenerationException e) {
        	   e.printStackTrace();
    	} catch (JsonMappingException e) {
    	   e.printStackTrace();
    	} catch (IOException e) {
    	   e.printStackTrace();
    	}
         }
    }

    Output

    mkyong
    29
    msg 1
    msg 2
    msg 3

    References

  • 相关阅读:
    【VS开发】【智能语音处理】DTW算法(语音识别)
    【VS开发】【智能语音处理】语音信号处理之(四)梅尔频率倒谱系数(MFCC)
    【VS开发】【智能语音处理】语音信号处理之(四)梅尔频率倒谱系数(MFCC)
    【VS开发】如何移植对话框?
    【VS开发】如何移植对话框?
    【VS开发】模态对话框和非模态对话框
    【VS开发】模态对话框和非模态对话框
    【VS开发】【智能语音处理】Windows下麦克风语音采集
    【VS开发】【智能语音处理】Windows下麦克风语音采集
    【VS开发】【智能语音处理】VS中声音的采集实现
  • 原文地址:https://www.cnblogs.com/lexus/p/2406355.html
Copyright © 2011-2022 走看看