从Json对象列表中获取字符串列表

时间:2017-07-19 06:25:14

标签: java json jsonpath

我正在尝试从以下Json中提取字符串列表

"example":{[
{"@name":"name1"},
{"@name":"name2"},
{"@name":"name3"},
{"@name":"name4"}
]}

我想获取@name值列表。我正在使用jayway jsonpath来做到这一点。

我尝试了以下代码,

List<String> response = null;
    try{
      ReadContext ctx = JsonPath.parse(data);
      response = ctx.read(xPath);
    }catch(Exception e){
      AppLogger.EventLogger.error(e.getMessage());
      response = null;
    }
    return response;

但有一个例外,说无法找到指定的路径。我使用了以下jsonPath example.@name

有人能告诉我我的代码出了什么问题吗?如何提取列表@name值。

预期产出:

[name1,name2,name3,name4]

1 个答案:

答案 0 :(得分:2)

我对你的json进行了一些小改动,以使其有效。

{"example":[
{"@name":"name1"},
{"@name":"name2"},
{"@name":"name3"},
{"@name":"name4"}
]}

并且指定的代码与以下表达式完美匹配:     的 $。例如[*]。@名称

有很多在线服务可以帮助验证你的json。 其中一个是jsonlint.com

我还建议您查看json.org