<< 如何用Mule创建动态的HTTP代理服务 | 首页 | 频次和密度:SNS战争的秘密 - 一个VC的胡思乱想 - 知乎专栏 >>

java Jackson 库操作 json 的基本演示 - joyous的专栏 - 博客频道 - CSDN.NET

核心库下载地址

http://repo1.maven.org/maven2/com/fasterxml/jackson/core/

jackson-annotations-2.2.2.jar

jackson-core-2.2.2.jar

jackson-databind-2.2.2.jar

 

文件类型支持模块

http://repo1.maven.org/maven2/com/fasterxml/jackson/dataformat/

jackson-dataformat-xml-2.2.2.jar

 

导入库

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonEncoding;
import com.fasterxml.jackson.core.JsonParseException;

 

[java] view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. /** 
  2.  * Map 转换为 json 
  3.  */  
  4. public static void MyTest01()  
  5. {  
  6.   Map<String, String> hashMap = new HashMap<String, String>();  
  7.   hashMap.put("name""zhang");  
  8.   hashMap.put("sex""1");  
  9.   hashMap.put("login""Jack");  
  10.   hashMap.put("password""123abc");  
  11.   
  12.   try  
  13.   {  
  14.     ObjectMapper objectMapper = new ObjectMapper();  
  15.     String userMapJson = objectMapper.writeValueAsString(hashMap);  
  16.   
  17.     JsonNode node = objectMapper.readTree(userMapJson);  
  18.   
  19.     // 输出结果转意,输出正确的信息  
  20.     System.out.println(node.get("password").asText());  
  21.     // 输出不转意,输出结果会包含"",这是不正确的,除非作为json传递,如果是输出结果值,必须如上一行的操作  
  22.     System.out.println(node.get("name"));  
  23.   }  
  24.   catch (IOException e)  
  25.   {  
  26.   }  
  27. }  

 

[java] view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. /** 
  2.    * 解析 json 格式字符串 
  3.    */  
  4.   public static void MyTest03()  
  5.   {  
  6.     try  
  7.     {  
  8.       String str = "{\"data\":{\"birth_day\":7,\"birth_month\":6},\"errcode\":0,\"msg\":\"ok\",\"ret\":0}";  
  9.   
  10.       ObjectMapper mapper = new ObjectMapper();  
  11.       JsonNode root = mapper.readTree(str);  
  12.   
  13.       JsonNode data = root.path("data");  
  14.   
  15.       JsonNode birth_day = data.path("birth_day");  
  16.       System.out.println(birth_day.asInt());  
  17.         
  18.       JsonNode birth_month = data.path("birth_month");  
  19.       System.out.println(birth_month.asInt());  
  20.   
  21.       JsonNode msg = root.path("msg");  
  22.       System.out.println(msg.textValue());  
  23.     }  
  24.     catch (IOException e)  
  25.     {  
  26.     }  
  27.   }  

 

[java] view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. /** 
  2.    * json 直接提取 值 
  3.    */  
  4.   public static void MyTest05()  
  5.   {  
  6.     try  
  7.     {  
  8.       // 演示字符串  
  9.       String str = "{\"data\":{\"hasnext\":0,\"info\":[{\"id\":\"288206077664983\",\"timestamp\":1371052476},{\"id\":\"186983078111768\",\"timestamp\":1370944068},{\"id\":\"297031120529307\",\"timestamp\":1370751789},{\"id\":\"273831022294863\",\"timestamp\":1369994812}],\"timestamp\":1374562897,\"totalnum\":422},\"errcode\":0,\"msg\":\"ok\",\"ret\":0,\"seqid\":5903702688915195270}";  
  10.   
  11.       ObjectMapper mapper = new ObjectMapper();  
  12.       JsonNode root = mapper.readTree(str);  
  13.   
  14.       // 提取 data  
  15.       JsonNode data = root.path("data");  
  16.       // 提取 info  
  17.       JsonNode info = data.path("info");  
  18.   
  19.       System.out.println(info.size());  
  20.   
  21.       // 得到 info 的第 0 个  
  22.       JsonNode item = info.get(0);  
  23.       System.out.println(item.get("id"));  
  24.       System.out.println(item.get("timestamp"));  
  25.   
  26.       // 得到 info 的第 2 个  
  27.       item = info.get(2);  
  28.       System.out.println(item.get("id"));  
  29.       System.out.println(item.get("timestamp"));  
  30.   
  31.       // 遍历 info 内的 array  
  32.       if (info.isArray())  
  33.       {  
  34.         for (JsonNode objNode : info)  
  35.         {  
  36.           System.out.println(objNode);  
  37.         }  
  38.       }  
  39.   
  40.     }  
  41.     catch (Exception e)  
  42.     {  
  43.   
  44.     }  
  45.   }  

 

[java] view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. /** 
  2.  * 创建一个 json,并向该 json 添加内容 
  3.  */  
  4. public static void MyTest07()  
  5. {  
  6.   try  
  7.   {  
  8.     ObjectMapper mapper = new ObjectMapper();  
  9.     ObjectNode root1 = mapper.createObjectNode();  
  10.   
  11.     root1.put("nodekey1"1);  
  12.     root1.put("nodekey2"2);  
  13.   
  14.     System.out.println(root1.toString());  
  15.   
  16.   //Create the root node  
  17.     ObjectNode root = mapper.createObjectNode ();  
  18.     //Create a child node  
  19.     ObjectNode node1 = mapper.createObjectNode ();  
  20.     node1.put ("nodekey1"1);  
  21.     node1.put ("nodekey2"2);  
  22.     //Bind the child nodes  
  23.     root.put ("child", node1);  
  24.     //Array of nodes  
  25.     ArrayNode arrayNode = mapper.createArrayNode ();  
  26.     arrayNode.add (node1);  
  27.     arrayNode.add (1);  
  28.     //Bind array node  
  29.     root.put ("arraynode", arrayNode);  
  30.   
  31.     System.out.println (mapper.writeValueAsString (root));  
  32.   }  
  33.   catch (Exception e)  
  34.   {  
  35.   
  36.   }  
  37. }  


 

参考资料

http://wiki.fasterxml.com/JacksonInFiveMinutes

阅读全文……

标签 : ,



发表评论 发送引用通报