2016-06-16 5 views
0

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

{ 
    "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», «имя» и «статус»?

Спасибо!

ответ

0

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

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

var input = 'yourJSONstring'; 
 
var jsObject = JSON.parse(input); 
 
for(var foo in jsObject){ 
 
\t 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); 

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

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

Смежные вопросы