В настоящее время я использую 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»?
Спасибо!
В зависимости от того, какой язык программирования вы используете, есть много способов справиться с этим. В 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;
}
Предположим, что у вас есть массив соглашений в указанном формате, вы можете сделать что-то вроде этого:
<?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);
Конечно, вы должны сделать некоторые проверки для пустых значений и так далее, но просто чтобы дать вам представление.
Поскольку вы не проясняете связь между именем, статусом и адресом электронной почты, я просто взял их в отдельные массивы, но это не может быть исправлено при некоторой обработке массива.
Надеюсь это поможет!