java Jackson 库操作 json 的基本演示

核心库下载地址

jackson-annotations-2.2.2.jar

jackson-core-2.2.2.jar

jackson-databind-2.2.2.jar

文件类型支持模块

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;

/** * Map 转换为 json */ public static void MyTest01() {Map<String, String> hashMap = new HashMap<String, String>();hashMap.put("name", "zhang");hashMap.put("sex", "1");hashMap.put("login", "Jack");hashMap.put("password", "123abc");try{ObjectMapper objectMapper = new ObjectMapper();String userMapJson = objectMapper.writeValueAsString(hashMap);JsonNode node = objectMapper.readTree(userMapJson);// 输出结果转意,输出正确的信息System.out.println(node.get("password").asText());// 输出不转意,输出结果会包含"",这是不正确的,除非作为json传递,,如果是输出结果值,必须如上一行的操作System.out.println(node.get("name"));}catch (IOException e){} }

/** * 解析 json 格式字符串 */ public static void MyTest03() {try{String str = "{\&;data\&;:{\&;birth_day\&;:7,\&;birth_month\&;:6},\&;errcode\&;:0,\&;msg\&;:\&;ok\&;,\&;ret\&;:0}";ObjectMapper mapper = new ObjectMapper();JsonNode root = mapper.readTree(str);JsonNode data = root.path("data");JsonNode birth_day = data.path("birth_day");System.out.println(birth_day.asInt());JsonNode birth_month = data.path("birth_month");System.out.println(birth_month.asInt());JsonNode msg = root.path("msg");System.out.println(msg.textValue());}catch (IOException e){} }

/** * json 直接提取 值 */ public static void MyTest05() {try{// 演示字符串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}";ObjectMapper mapper = new ObjectMapper();JsonNode root = mapper.readTree(str);// 提取 dataJsonNode data = root.path("data");// 提取 infoJsonNode info = data.path("info");System.out.println(info.size());// 得到 info 的第 0 个JsonNode item = info.get(0);System.out.println(item.get("id"));System.out.println(item.get("timestamp"));// 得到 info 的第 2 个item = info.get(2);System.out.println(item.get("id"));System.out.println(item.get("timestamp"));// 遍历 info 内的 arrayif (info.isArray()){for (JsonNode objNode : info){System.out.println(objNode);}}}catch (Exception e){} }

/** * 创建一个 json,并向该 json 添加内容 */ public static void MyTest07() {try{ObjectMapper mapper = new ObjectMapper();ObjectNode root1 = mapper.createObjectNode();root1.put("nodekey1", 1);root1.put("nodekey2", 2);System.out.println(root1.toString());//Create the root nodeObjectNode root = mapper.createObjectNode ();//Create a child nodeObjectNode node1 = mapper.createObjectNode ();node1.put ("nodekey1", 1);node1.put ("nodekey2", 2);//Bind the child nodesroot.put ("child", node1);//Array of nodesArrayNode arrayNode = mapper.createArrayNode ();arrayNode.add (node1);arrayNode.add (1);//Bind array noderoot.put ("arraynode", arrayNode);System.out.println (mapper.writeValueAsString (root));// 得到的输出信息// {"child":{"nodekey1":1,"nodekey2":2},"arraynode":[{"nodekey1":1,"nodekey2":2},1]}}catch (Exception e){} }

参考资料

blog.csdn.net/joyous/article/details/9448461Q群讨论:236201801

版权声明:本文为博主原创文章,未经博主允许不得转载。

远离城市的喧嚣,寻找一份宁静,

java Jackson 库操作 json 的基本演示

相关文章:

你感兴趣的文章:

标签云: