如何在JsonPath中设置编码?

时间:2018-01-23 19:46:17

标签: java jsonpath

如何设置用于传递给JsonPath.parse()的JSON的编码。有一个Configuration参数,但似乎没有编码设置。

有没有办法让它在开始时使用(或忽略)BOM?

我正在使用jayway JsonPath。

谢谢 - 戴夫

1 个答案:

答案 0 :(得分:0)

Jayway JsonPath公开了一个接受字符集参数的read方法。

来自Javadocs ...

  

public T read(java.io.InputStream jsonInputStream,java.lang.String charset,Configuration configuration)              抛出java.io.IOException

例如:

String json = "{\n" +
        "      \"name\" : \"john\",\n" +
        "      \"gender\" : \"male\"\n" +
        "   }";

// presumably you'll read (or get) the json in the correct charset
String value = JsonPath.compile("$.name")
        .read(new ByteArrayInputStream(json.getBytes()), "UTF-8", Configuration.defaultConfiguration());

assertThat(value, is("john"));

注意:这要求您在JsonPath级别使用已编译的DocumentContext而不是(可能)更加用户友好的API。