0

我想从下面的 json 中获取针对“名称”字段的值。我尝试使用工具http://jsonpathfinder.com/http://jsonpath.com/?我正在使用http://jsonpath.herokuapp.com/来验证表达式路径是否正确,但它总是将我返回为不正确的表达式。

{
  "data" : {
    "PensionRetriever(Customer=ABC, typeInfo=valid)" : {
      "name" : "lifeInsurance",
      "created_at" : 1552297775384,
      "attributes" : [ {
        "id" : "4044da39-c23b-4588-b6c4-975ce02e7cb2",
        "name" : "lifeInsurance",
        "created_at" : 1552297775384
   }]
    }
  }
}

我试过了$.data["PensionRetriever(Customer=ABC, typeInfo=valid)"].name,但这似乎不正确。你能告诉我现在得到“名字”的价值吗,即lifeInsurance

4

2 回答 2

1

在 JSONPath 表达式中使用单引号而不是双引号的名称,即

$.data['PensionRetriever(Customer=ABC, typeInfo=valid)'].name

使用http://jsonpath.herokuapp.com/上的在线评估器,通常可靠的 Jayway 失败了,显然无法消化名称'PensionRetriever(Customer=ABC, typeInfo=valid)'。那是Jayway的错误。但 Goessner 成功了,返回了预期的

[    "lifeInsurance" ]
于 2019-03-14T02:05:36.217 回答
-1

var path = $.JSONPath({data: json, keepHistory: false}); var test=path.query('$.data.PensionRetriever(Customer=ABC,typeInfo=valid).name');

于 2019-03-11T11:34:28.493 回答