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

Get list of string from list of Json object

我正在尝试从以下 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]

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

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

并且指定的代码与以下表达式完美配合: $.example[*].@name

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

我还建议查看 json.org