fastjson JSONPath无法获取值的问题

2nc8po8w  于 2021-11-27  发布在  Java
关注(0)|答案(1)|浏览(518)

一个JSON
{
"id": 28,
"Title": {
"name": "USA"
}
}
用 $.*.name 这个path无法获取到 name的值。而Jayway 可以获取到"USA"。 https://jsonpath.com/ 这个在线工具也可以获取到 "USA"。

smtd7mpg

smtd7mpg1#

import com.alibaba.fastjson.JSONPath;
import lombok.Data;
import org.junit.Test;

public class Issue3574 {
    @Test
    public void test1() {
        Issue3574POJO issue3574POJO = new Issue3574POJO();
        Issue3574POJO2 issue3574POJO2 = new Issue3574POJO2();
        issue3574POJO2.setName("USA");
        issue3574POJO.setId(28);
        issue3574POJO.setTitle(issue3574POJO2);
        Object temp = JSONPath.eval(issue3574POJO,"$.*.name");
        System.out.println(JSONPath.eval(issue3574POJO,"$.*.name"));
    }

    @Data
    class Issue3574POJO {
        private int id;
        private Issue3574POJO2 Title;
    }

    @Data
    class Issue3574POJO2 {
        private String name;
    }
}

输出

["USA"]

JSONPath.eval(issue3574POJO,"$.*.name")拿到的是一个JsonArray

1.2.75没复现说的 无法获取

相关问题