Jsonpath запрашивает только один элемент - PullRequest
0 голосов
/ 01 мая 2018

У меня проблема с поиском только определенного значения в json, используя jsonpath. У меня есть этот JSON:

{"tvs": {
    {  "tv": [
    {
      "serial": "HD1300",
      "data": [
        {
          "title": "manufacturer",
          "value": "lg"
        },
        {
          "title": "color",
          "value": "silver"
        },
        {
          "title": "inches",
          "value": 32
        },
        {
          "title": "connection",
          "value": 220
        },

        {
          "title": "connection",
          "value": 400
        }
    ]

    }.. more tvs

И я хочу знать, если значение соединения: 400 присутствует для последовательного hd1300 Я уже пробовал с:

$.tvs.[?(@.serial=='hd1340')].data.[?(@.title== 'connection'),(@.value==400)]

Но моя проблема в том, что я также получаю "соединение" с 200. Как я могу фильтровать, чтобы получить только это значение?

1 Ответ

0 голосов
/ 01 мая 2018

Я думаю, что у вас может быть ошибка в вашем JSON (дополнительная скобка между ТВ и ТВ). Я смог заставить это работать на http://jsonpath.com.

{"tvs": 
    {  "tv": [
    {
      "serial": "HD1300",
      "data": [
        {
          "title": "manufacturer",
          "value": "lg"
        },
        {
          "title": "color",
          "value": "silver"
        },
        {
          "title": "inches",
          "value": 32
        },
        {
          "title": "connection",
          "value": 220
        },
        {
          "title": "connection",
          "value": 400
        }
        ]}
    ]}
}

$. Tvs.tv. [? (@. Serial == 'HD1300')]. Data. [? (@. Title == 'connection' && @ .value == '400')]

...