java Jackson 库操作 json 的基本演示
来源:互联网 发布:php开发框架 编辑:程序博客网 时间:2024/05/29 13:03
核心库下载地址
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;
- /**
- * 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);
- // 提取 data
- JsonNode data = root.path("data");
- // 提取 info
- JsonNode 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 内的 array
- if (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 node
- ObjectNode root = mapper.createObjectNode ();
- //Create a child node
- ObjectNode node1 = mapper.createObjectNode ();
- node1.put ("nodekey1", 1);
- node1.put ("nodekey2", 2);
- //Bind the child nodes
- root.put ("child", node1);
- //Array of nodes
- ArrayNode arrayNode = mapper.createArrayNode ();
- arrayNode.add (node1);
- arrayNode.add (1);
- //Bind array node
- root.put ("arraynode", arrayNode);
- System.out.println (mapper.writeValueAsString (root));
- }
- catch (Exception e)
- {
- }
- }
json转为map
ObjectMapper mapper = new ObjectMapper();
String json = (String) configMap.get(key);
try {
Map<String,Object> productMap = mapper.readValue(json,Map.class);
//如果是范围的话先不转换
value = (String) productMap.get(value)==null ? value : (String)productMap.get(value);
参考资料
http://wiki.fasterxml.com/JacksonInFiveMinutes
blog.csdn.net/joyous/article/details/9448461
Q群讨论:236201801
- java Jackson 库操作 json 的基本演示
- java Jackson 库操作 json 的基本演示
- java Jackson 库操作 json 的基本演示
- java Jackson 库操作 json 的基本演示
- java Jackson 库操作 json 的基本演示
- java Jackson 库操作 json 的基本演示
- java Jackson 库操作 json 的基本演示
- java Jackson 库操作 json 的基本演示
- Java中Jackson库操作json的基本操作
- jackson的基本操作
- Jackson的json转换和Jackson Annotations 基本用法
- Java使用jackson操作Json格式数据
- java 操作json数据 fastjson jackson
- Jackson实现的json操作工具类
- Json学习(二):java和Jackson操作Json
- Jackson实现json与java的转化
- JackSon转换Java的Json使用方法
- Java JSON处理类库Jackson
- mySql与oracle分页技术原理与实现
- eclipse连接真机无log,显示log device is empty!的解决办法
- scala学习笔记--基础
- SharePoint 2013 在母版页中插入WebPart
- POJ---3274-Gold Balanced Lineup(hash)
- java Jackson 库操作 json 的基本演示
- Python的列表推导式学习
- 关于Android NDK中调用第三方的动态库
- cxf自定义返回错误信息
- [php] ThinkPHP缓存技术(S(),F(),查询缓存,静态缓存)
- 欢迎使用CSDN-markdown编辑器
- 面向接口编程详解(三)——模式研究
- 模板特化
- 交换机用光纤收发器作聚合引起的网络故障