jmespath java 使用


日常中我們經常需要進行json 數據類型的處理,jmespath 是一個很不錯的選擇,簡單強大,以下是關於java代碼
集成的使用(一個簡單示例,進行multiselect 的處理)

參考使用

  • pom.xml
 
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.dalong</groupId>
    <artifactId>myjmespath</artifactId>
    <version>1.0-SNAPSHOT</version>
    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>
    <dependencies>
        <dependency>
            <groupId>io.burt</groupId>
            <artifactId>jmespath-jackson</artifactId>
            <version>0.5.0</version>
        </dependency>
    </dependencies>
</project>
 
  • java 代碼
package com.dalong;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.burt.jmespath.Expression;
import io.burt.jmespath.JmesPath;
import io.burt.jmespath.jackson.JacksonRuntime;
import java.io.IOException;
public class Application {
    private static final ObjectMapper oj  =new ObjectMapper();
    public static void main(String[] args) throws IOException {
        String info = "[\n" +
                " {\n" +
                " \"name\":\"dalong\",\n" +
                "\"age\":22,\n" +
                "\"version\":\"v1\"\n" +
                "},\n" +
                "{\n" +
                " \"name\":\"dalongrong\",\n" +
                "\"age\":221,\n" +
                "\"version\":\"v2\"\n" +
                "}\n" +
                "]";
        JmesPath<JsonNode> jmespath = new JacksonRuntime();
        Expression<JsonNode> expression = jmespath.compile("[].{Name:name,Age:age,Version:version,Type:'mydemp'}");
        JsonNode input =  oj.readTree(info);
        JsonNode result = expression.search(input);
        System.out.println(result);
    }
}
  • 效果

 

 

說明

jmespath 是一個很強大的json 處理指南,很值得學習下,具體可以參考jmespath 官方文檔,當然aws 也提供了一個java 的包裝,也是可以使用的(比較活躍)

參考資料

https://github.com/burtcorp/jmespath-java
https://github.com/aws/aws-sdk-java/tree/master/jmespath-java
http://jmespath.org/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM