2015-02-19 2 views
0

Использование JavaScript, как мне извлечь поля Date, To, From, Subject и Text из возврата API Gmail (см. Ниже)?Как разобрать JSON из API Gmail с помощью JavaScript?

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

{ 
"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 
} 
+0

Возможный дубликат [Parse JSON в JavaScript?] (Http://stackoverflow.com/questions/4935632/parse-json-in-javascript) –

+0

@John Mee, нет, этот вопрос просит разобрать строку JSON , Мой вопрос заключается в том, как извлечь значение из пары имя-значение, когда они находятся в паре с неудобным способом, который Gmail предоставляет мне. – FullStack

ответ

1

Серфинг в Интернете я нашел class, которая описывает Generic GMail сообщение. Вы можете использовать это, чтобы легко разобрать JSON (используя любой из множества доступных библиотек).

1

Вы можете использовать, например. filter функционирует следующим образом:

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

Помогает ли это?

+2

Это хорошая идея, спасибо! Как насчет декодирования текстового текста - есть ли какие-нибудь идеи? – FullStack

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