выберите несколько атрибутов с помощью jsonpath - PullRequest
0 голосов
/ 23 октября 2018

У меня есть массив объектов, подобных этому:

[
    {
        "id": 192,
        "name": "Complete name",
        "username": "nsurname",
        "state": "active",
        "created_at": "2016-05-30T07:09:40.981Z",
        "organization": "",
        "last_sign_in_at": "2018-10-19T12:07:50.679Z",
        "confirmed_at": "2016-05-30T07:09:40.982Z",
        "last_activity_on": "2018-10-15",
        "email": "mail@myorganization.com",
        "current_sign_in_at": "2018-10-23T11:41:27.880Z",
        "identities": [
            {
                "provider": "ldapmain",
                "extern_uid": "user distinguished name"
            }
        ],
        "can_create_group": true,
        "can_create_project": false
    }
]

Я хочу извлечь только подмножество атрибутов и получить что-то вроде этого:

[
   {
      "id" : 192,
      "name" : "complete name",
      "username" : "uname",
      "email" : "mail@myorganization.com",
      "extern_uid": "user distinguished name"
   }
]

На основе этот ответ , я успешно получил атрибуты id, name, username и email с этим выражением, используя Jayway JsonPath Evaluator на http://jsonpath.herokuapp.com/

$..['id', 'name', 'username', 'email']

Но как я могу получить атрибут другого уровня?extern_uid

1 Ответ

0 голосов
/ 23 октября 2018

Я бы написал это в комментариях, но я подумал, что это будет легче читать.Вы можете просто проанализировать ответ и затем использовать Stringify, чтобы воссоздать нужный вам объект JSON.Я смог вытащить базовый код, который использовал для этого, Как извлечь подмножество JSON из основного JSON

Я не знаю, будет ли это работать точно, ноЯ надеялся, что это по крайней мере укажет вам правильный путь к поиску решения.

Мой ответ:

var parsed = JSON.parse(thisObjectYouLinked);//here you would put whatever JSON object you displayed

var newObject = JSON.stringify({
    $..['id', 'name', 'username', 'email']
    $.identies[*].['extern_uid']
});

Так коротко, вместо того, чтобы пытаться понятьиз материала JSONPath, почему бы просто не проанализировать и создать свой собственный объект?

...