Java 不区分大小写的jsonPath表达式?

Java 不区分大小写的jsonPath表达式?,java,jsonpath,Java,Jsonpath,我使用的是Jayway JsonPath() 我正在处理包含HTTP请求头的JSON数据。因此,“name”元素的字母大小写不一致。例如: "headers":{ "Cookie":"token=eyJhbGciOiJIUzI1NiJ9", "origin":"http://www.foobar.com" } 对 "headers":{ "cookie":"token=eyJhbGciOiJIUzI1NiJ9", "Origin":"http://www.foo

我使用的是Jayway JsonPath()

我正在处理包含HTTP请求头的JSON数据。因此,“name”元素的字母大小写不一致。例如:

"headers":{
    "Cookie":"token=eyJhbGciOiJIUzI1NiJ9",
    "origin":"http://www.foobar.com"
}

"headers":{
    "cookie":"token=eyJhbGciOiJIUzI1NiJ9",
    "Origin":"http://www.foobar.com"
}
cookie
origin
标题名称按字母大小写不同,但cookie值将区分大小写

我正在尝试使用以下方法获取标题值:

JsonPath.compile("$.headers.cookie");
JsonPath.compile("$.headers.origin");

但我被标题名称中使用的不同字母大小写所困扰。我没有找到指定不区分大小写的路径值的方法。我不能只是将要搜索的json小写,因为这会破坏cookie值。我想我可以搜索所有小写和大写的变体,但这感觉很糟糕。有什么建议吗?

目前,我正在通过如下方式预处理json字符串来解决这个问题:json=json.replaceAll(“(?I)\”headers\”,“\”headers\”);json=json.replaceAll((?i)“cookie\”,“cookie\”);json=json.replaceAll(“(?i)\'origin\”,“\'origin\”);你可以搜索两者。或者,您可以将JSON解析为POJO,允许在非静态字段名中使用大小写。两者都可以。@Jaffadog请不要使用简单的文本替换/regexp来执行这种转换:它完全不安全,并且很容易导致数据损坏,不仅转换顶级对象属性名。