Извлекать значения из нескольких массивов

В настоящее время я использую Adobe Echosign API для форматирования некоторых данных в таблице. Вывод выглядит так:

{
"agreementId": "",
"events": [
{
"actingUserEmail": "",
"actingUserIpAddress": "",
"date": "date",
"description": "",
"participantEmail": "",
"type": "",
"versionId": ""}
],
"locale": "",
"modifiable": false,
"name": "",
"nextParticipantSetInfos": [
{
"nextParticipantSetMemberInfos": [
{
"email": "",
"waitingSince": "date"}
]
}
],
"participantSetInfos": [
{
"participantSetId": "",
"participantSetMemberInfos": [
{
"email": "",
"participantId": ""}
],
"roles": [
""],
"status": ""}
],
"status": "",
"vaultingEnabled": false
}

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

Вероятно, это действительно базовый вопрос, но как мне пройти через каждый массив и извлечь, например, значения «memberEmail», «name» и «status»?

Спасибо!

0

Решение

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

Пример для JS будет:

var input = 'yourJSONstring';
var jsObject = JSON.parse(input);
for(var foo in jsObject){
var name = foo.name;
var participantEmail=  foo.events[0].participantEmail;
var status = foo.participantEmail[0].status;
}
0

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

Предположим, что у вас есть массив соглашений в указанном формате, вы можете сделать что-то вроде этого:

<?php

$json = '[{
"agreementId": "",
"events": [
{
"actingUserEmail": "",
"actingUserIpAddress": "",
"date": "date",
"description": "",
"participantEmail": "an email",
"type": "",
"versionId": ""}
],
"locale": "",
"modifiable": false,
"name": "a name",
"nextParticipantSetInfos": [
{
"nextParticipantSetMemberInfos": [
{
"email": "",
"waitingSince": "date"}
]
}
],
"participantSetInfos": [
{
"participantSetId": "",
"participantSetMemberInfos": [
{
"email": "",
"participantId": ""}
],
"roles": [
""],
"status": "a status"}
],
"status": "",
"vaultingEnabled": false
}]';

$parsed = json_decode($json, true);

$names = [];
foreach($parsed as $agreement) {

$names[] = $agreement['name'];

$emails = [];
foreach($agreement['events'] as $event) {
$emails[] = $event['participantEmail'];
}

$status = [];
foreach($agreement['participantSetInfos'] as $participant) {
$status[] = $participant['status'];
}

}

var_dump($names);
var_dump($emails);
var_dump($status);

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

Надеюсь это поможет!

0

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