Получить письмо из массива JSON

Пытаюсь выяснить это уже целый день. Я пытаюсь использовать API fiken.no для получения номеров клиентов. API основан на HAL + JSON, и я хочу получить доступ к данным с помощью PHP.

При создании новой учетной записи вы не получаете ответа, а только HTTP 201, поэтому, чтобы получить сгенерированный номер клиента, мне нужно использовать конечную точку поиска.

Эта конечная точка возвращает только всех пользователей, как это:

{
"_links": {
"self": {
"href": "https://fiken.no/api/v1/companies/fiken-demo-personlig-gnist-enk/contacts"}
},
"_embedded": {
"https://fiken.no/api/v1/rel/contacts": [
{
"_links": {
"self": {
"href": "https://fiken.no/api/v1/companies/fiken-demo-personlig-gnist-enk/contacts/757941482"}
},
"name": "Ola Nordmann 2",
"email": "[email protected]",
"address": {
"country": "Norge"},
"customerNumber": 10003
},
{
"_links": {
"self": {
"href": "https://fiken.no/api/v1/companies/fiken-demo-personlig-gnist-enk/contacts/757941171"}
},
"name": "Ola Nordmann 1",
"email": "[email protected]",
"address": {
"country": "Norge"},
"customerNumber": 10002
},
{
"_links": {
"self": {
"href": "https://fiken.no/api/v1/companies/fiken-demo-personlig-gnist-enk/contacts/756867201"}
},
"name": "Demoleverandør",
"address": {
"address1": "Demoveien 44",
"address2": "",
"postalPlace": "Oslo",
"postalCode": "0190",
"country": "Norge"},
"supplierNumber": 20001
},
{
"_links": {
"self": {
"href": "https://fiken.no/api/v1/companies/fiken-demo-personlig-gnist-enk/contacts/756867200"}
},
"name": "Demokunde",
"address": {
"address1": "Demoveien 22",
"address2": "",
"postalPlace": "Oslo",
"postalCode": "0190",
"country": "Norge"},
"customerNumber": 10001
}
]
}}

Из этого ответа мне нужно запросить f.ex электронную почту [email protected] и получить от нее весь объект пользователя. Это включает в себя данные адреса и особенно номер клиента. Как бы я пошел вперед, чтобы сделать это?

Я нашел это: Поиск ключа в Json (вложенный массив) PHP это похоже на мои проблемы, но здесь ключ является постоянным в массиве json. Здесь это от 0 и до бесконечности.

Есть ли лучший способ обработать это с помощью PHP, чем обычные практики JSON?
Спасибо за любую помощь!

0

Решение

Первым делом будет декодировать JSON в массив:

$resultArray = json_decode($yourJSONvariable, true);

Далее я бы порекомендовал выделить массив контактов из массива JSON:

$contacts = $resultArray["_embedded"]["https://fiken.no/api/v1/rel/contacts"];

Сейчас $contacts должен быть массив всех контактов из вызова API. Вы можете просмотреть каждую из них, чтобы найти запись с соответствующим адресом электронной почты, например:

foreach ($contacts as $contact) {
if ($contact["email"] == "[email protected]") {
$mycontact = $contact;
break;
}
}

$mycontact теперь будет содержать массив контактов с соответствующим адресом электронной почты, и вы можете получить доступ к его отдельным полям, используя имена полей в качестве индекса массива (например, $mycontact["name"], $mycontact["address"]["country"], $mycontact["_links"]["self"]["href"]). Чтобы увидеть все данные в массиве, сделайте var_dump($contacts)

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]