JsonNode常用方法

pom依赖

		<dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.9.9</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>2.9.9</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.9.9</version>
        </dependency>

测试string

        String json = "{\"name\":\"小明\",\"school\":{\"name\":\"第一小学\",\"tel\":\"010-123456\",\"address\":\"北京海淀区\"},\"hobbies\":[\"足球\",\"篮球\",\"吉他\"]}";
        String arrayJson = "[{\"no\":10,\"name\":\"Jack\"},{\"no\":11,\"name\":\"Tom\"},{\"no\":12,\"name\":\"Harry\"},{\"no\":13,\"name\":\"Li\"}]";

1.Json字符串转JsonNode

ObjectMapper objectMapper = new ObjectMapper();

//对象
JsonNode jsonNode = objectMapper.readTree(json);

//数组
Iterator<JsonNode> elements = jsonNode2.elements();
while (elements.hasNext()) {
     JsonNode node = elements.next();
     System.out.println(node.toString());
}

2.JsonNode转Json字符串

String s = objectMapper.writeValueAsString(lisa);

3.JsonNode转java对象

Student student = objectMapper.treeToValue(jsonNode1,Student.class);

4.JsonNode根据key查找值

//只能取第一层key,key不存在返回null
 JsonNode name = jsonNode.get("name");  
 
//只能取第一层key,key不存在返回MissingNode
JsonNode name = jsonNode.path("name");  

//全部key,取第一个,key不存在返回MissingNode,空字符串
JsonNode name = jsonNode.findPath("name"); 

//全部key,取第一个,key不存在返回null,空指针
JsonNode name = jsonNode.findValue("name");  

//查找全部的key 
List<JsonNode> name = jsonNode.findValues("name");

//已经key路径查找
JsonNode name = jsonNode.at("/school/name");

5.JsonNode类型

//获取类型
JsonNodeType nodeType = jsonNode.getNodeType();

//判断是否是数组
boolean array = jsonNode.isArray();
//判断是否是对象
boolean object = jsonNode.isObject();
//判断是否是值
boolean valueNode = jsonNode.isValueNode();
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值