Вопрос по JsonPath

amful

Client
Регистрация
07.11.2013
Сообщения
32
Благодарностей
46
Баллы
18
Добрый вечер!
Есть такая строчка в Json
{
"pageInfo": {
"pageName": "abc",
"pagePic": "http://example.com/content.jpg"
}
}
Как получить значение ключей через JsonPath у pageInfo.
На выходе хочу получить ключи pageName, pagePic.
 

ТРОН

Client
Регистрация
31.07.2016
Сообщения
336
Благодарностей
380
Баллы
63

amful

Client
Регистрация
07.11.2013
Сообщения
32
Благодарностей
46
Баллы
18
Хорошо, а как сами значения ключей получить?

А если еще сложнее вариант:
{
"pageInfo": {
"pageName":{"a":123,"b":456},
"pagePic":{"a":123,"b":456}
}
}

Как выдернуть в переменные сами ключи pageName и pagePic?
 

z@jivalo

Client
Регистрация
27.12.2016
Сообщения
798
Благодарностей
178
Баллы
43

amful

Client
Регистрация
07.11.2013
Сообщения
32
Благодарностей
46
Баллы
18
так вопрос в том, как мне взять ключи, а не значения ключей.
я не знаю сколько у меня их и какие
 

z@jivalo

Client
Регистрация
27.12.2016
Сообщения
798
Благодарностей
178
Баллы
43

amful

Client
Регистрация
07.11.2013
Сообщения
32
Благодарностей
46
Баллы
18
сформулирую по другому)
как мне получить имя САМОГО КЛЮЧА.

в данном случае хочу получить что-то похожее
str[0] = 'pageName'
str[1] = 'pagePic'

Думал что в JsonPath есть метод получить сами ключи, а не их значения
 

z@jivalo

Client
Регистрация
27.12.2016
Сообщения
798
Благодарностей
178
Баллы
43
формат JSON состоит из объектов и массивов .
Вы обращаетесь к объекту по имени pageName и потом извлекаете значение путем использованием JSONPath
как я ранее показал.


в данном случае хочу получить что-то похожее
str[0] = 'pageName'
str[1] = 'pagePic'
Такое я первый раз вижу что бы json с этим работал как-то
 

amful

Client
Регистрация
07.11.2013
Сообщения
32
Благодарностей
46
Баллы
18
в том то и дело, структура странная.
Вот мой пример:

{
"people": {
"ivanov":{"name":dmitry,"age":18},
"petrov":{"name":stepan,"age":22}
}
}

Мне нужно вытащить массив с фамилиями и именами. Если с именем все понятно, то как фамилию получить не понимаю.
Думал можно регуляркой, но и там все не так просто
 

z@jivalo

Client
Регистрация
27.12.2016
Сообщения
798
Благодарностей
178
Баллы
43

amful

Client
Регистрация
07.11.2013
Сообщения
32
Благодарностей
46
Баллы
18
с кавычками, да, ошибся, в ручную набирал.

по этой гифке все так же не понятно как вытащить
[0]ivanov dmitry
[1]petrov stepan
 

z@jivalo

Client
Регистрация
27.12.2016
Сообщения
798
Благодарностей
178
Баллы
43
с кавычками, да, ошибся, в ручную набирал.

по этой гифке все так же не понятно как вытащить
[0]ivanov dmitry
[1]petrov stepan
Там где [0] [1] используйте в качестве индекса счетчик каждый проход увеличивает на +1
 

amful

Client
Регистрация
07.11.2013
Сообщения
32
Благодарностей
46
Баллы
18
ivanov, petrov не фигурируют в значениях нигде, как мне их то вытащить?
 

amful

Client
Регистрация
07.11.2013
Сообщения
32
Благодарностей
46
Баллы
18
было бы это реализовано вот так проблем бы не было

{
"people": {
"a":{"surname":"ivanov","name":"dmitry","age":18},
"b":{"surname":"petrov","name":"stepan","age":22}
}
}
 

z@jivalo

Client
Регистрация
27.12.2016
Сообщения
798
Благодарностей
178
Баллы
43
пробуйте работать с people
Раз у вас такая структура на руках

upload_2018-1-5_23-1-0.png



ivanov petrov по идеи тоже должны иметь свой объект но его тут нету
P.S. с регулярками намучаетесь просто любой пробел символ сломает регулярку
 
  • Спасибо
Реакции: amful

bizzon

Client
Регистрация
08.09.2015
Сообщения
1 089
Благодарностей
126
Баллы
63

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)