Как получить значение поля «name» из json, используя выражение jsonpath - PullRequest
0 голосов
/ 11 марта 2019

Я хочу получить значение для поля «name» из приведенного ниже 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

Ответы [ 2 ]

1 голос
/ 14 марта 2019

Используйте одинарные кавычки, а не двойные кавычки в выражении JSONPath, т. Е.

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

При использовании онлайн-оценщиков на http://jsonpath.herokuapp.com/, обычно надежный Jayway не работает, очевидно, не может переварить имя 'PensionRetriever(Customer=ABC, typeInfo=valid)'.Это ошибка Jayway.Но Гесснер добивается успеха, возвращая ожидаемое

[    "lifeInsurance" ]
0 голосов
/ 11 марта 2019

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

...