2016-06-16 21 views
0

現在、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 
} 

私は複数の契約をループしており、それぞれを別々の配列として出力しています。

これはおそらく本当に基本的な質問ですが、どのように私は各配列を通過し、 'participantEmail'、 'name'と 'status'の値を抽出するでしょうか?

ありがとうございます!

答えて

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); 

もちろん、値が空であるかどうかをチェックする必要がありますが、アイデアを伝えるだけです。 名前、ステータス、電子メールの関係を明確にしていないので、私は別々の配列で取りましたが、何らかの配列操作で修正できないものは何もありません。

希望すると便利です。

関連する問題