Comment analyser JSON depuis Gmail API en utilisant JavaScript?

En utilisant JavaScript, comment puis-je extraire les champs Date, À, De, Sujet et Texte du retour de l'API Gmail (voir ci-dessous)?

Ce n'est pas dans la paire nom-valeur habituelle, du moins pas comment je le ferais avec JSON. En outre, le texte doit être décodé.

{ "id": "rthrt34t34t45g45g4", "threadId": "gg54tgw4y45t24f3f", "labelIds": [ "SENT" ], "snippet": "Testing 1 2 3", "historyId": "2344", "payload": { "mimeType": "multipart/alternative", "filename": "", "headers": [ { "name": "MIME-Version", "value": "1.0" }, { "name": "Received", "value": "by 101.64.82.199 with HTTP; Wed, 18 Feb 2015 21:34:49 -0800 (PST)" }, { "name": "Date", "value": "Thu, 19 Feb 2015 12:34:49 +0700" }, { "name": "Delivered-To", "value": "[email protected]" }, { "name": "Message-ID", "value": "<[email protected]>" }, { "name": "Subject", "value": "testing 123" }, { "name": "From", "value": "A Test <[email protected]>" }, { "name": "To", "value": "[email protected]" }, { "name": "Content-Type", "value": "multipart/alternative; boundary=egrreg34t34" } ], "body": { "size": 0 }, "parts": [ { "partId": "0", "mimeType": "text/plain", "filename": "", "headers": [ { "name": "Content-Type", "value": "text/plain; charset=UTF-8" } ], "body": { "size": 8, "data": "MTIzNDU2DQo=" } }, { "partId": "1", "mimeType": "text/html", "filename": "", "headers": [ { "name": "Content-Type", "value": "text/html; charset=UTF-8" } ], "body": { "size": 29, "data": "PGRpdiBkaXI9Imx0ciI-MTIzNDU2PC9kaXY-DQo=" } } ] }, "sizeEstimate": 651 } 

    Surfer sur Internet, j'ai trouvé cette classe qui décrit un message GMail générique. Vous pouvez l'utiliser pour analyser facilement le JSON (en utilisant l'une des nombreuses gammes de bibliothèques fournies).

    Vous pouvez utiliser par exemple la fonction de filter comme suit:

     var extractField = function(json, fieldName) { return json.payload.headers.filter(function(header) { return header.name === fieldName; })[0]; }; var date = extractField(response, "Date"); var subject = extractField(response, "Subject"); 

    est-ce que cela aide?