如何使用JavaScript从Gmail API解析JSON?
使用JavaScript,如何从Gmail API的返回中提取日期、收件人、发件人、主题和文本字段(见下文) 它不在通常的名称-值对中,至少不在JSON中。此外,文本需要解码如何使用JavaScript从Gmail API解析JSON?,javascript,json,gmail-api,Javascript,Json,Gmail Api,使用JavaScript,如何从Gmail API的返回中提取日期、收件人、发件人、主题和文本字段(见下文) 它不在通常的名称-值对中,至少不在JSON中。此外,文本需要解码 { "id": "rthrt34t34t45g45g4", "threadId": "gg54tgw4y45t24f3f", "labelIds": [ "SENT" ], "snippet": "Testing 1 2 3", "historyId": "2344", "payload": { "m
{
"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": "test@test.org"
},
{
"name": "Message-ID",
"value": "<retert-_RKS0Vc-U6-V8dSma5=ertertertertf2e@mail.gmail.com>"
},
{
"name": "Subject",
"value": "testing 123"
},
{
"name": "From",
"value": "A Test <test@test.org>"
},
{
"name": "To",
"value": "test.test@test.com"
},
{
"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
}
{
“id”:“RTHRT34T45G45G4”,
“线程ID”:“gg54tgw4y45t24f3f”,
“labelIds”:[
“已发送”
],
“代码片段”:“测试1 2 3”,
“historyId”:“2344”,
“有效载荷”:{
“mimeType”:“多部分/备选方案”,
“文件名”:“,
“标题”:[
{
“名称”:“MIME版本”,
“值”:“1.0”
},
{
“姓名”:“已收到”,
“价值”:“由101.64.82.199通过HTTP;Wed,2015年2月18日21:34:49-0800(太平洋标准时间)”
},
{
“姓名”:“日期”,
“价值”:“周四,2015年2月19日12:34:49+0700”
},
{
“名称”:“交付至”,
“值”:test@test.org"
},
{
“名称”:“消息ID”,
“值”:”
},
{
“名称”:“主题”,
“值”:“测试123”
},
{
“姓名”:“发件人”,
“值”:“测试”
},
{
“姓名”:“收件人”,
“值”:“测试”。test@test.com"
},
{
“名称”:“内容类型”,
“值”:“多部分/备选方案;边界=egrreg34t34”
}
],
“正文”:{
“大小”:0
},
“部分”:[
{
“partId”:“0”,
“mimeType”:“文本/普通”,
“文件名”:“,
“标题”:[
{
“名称”:“内容类型”,
“值”:“文本/纯文本;字符集=UTF-8”
}
],
“正文”:{
“大小”:8,
“数据”:“MTIzNDU2DQo=”
}
},
{
“partId”:“1”,
“mimeType”:“text/html”,
“文件名”:“,
“标题”:[
{
“名称”:“内容类型”,
“值”:“text/html;charset=UTF-8”
}
],
“正文”:{
“尺寸”:29,
“数据”:“PGRpdiBkaXI9Imx0ciI-MTIzNDU2PC9kaXY-DQo=”
}
}
]
},
“sizeEstimate”:651
}
在网上冲浪时,我发现这是一条通用的GMail信息。您可以使用它来轻松解析JSON(通过使用提供的各种库)。您可以使用例如过滤器
函数,如下所示:
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");
这有用吗?好主意,谢谢!正文解码怎么样?有什么想法吗?可能是@John Mee的重复,不,这个问题是要解析一个JSON字符串。我的问题是,当名称-值对以Gmail提供给我的不方便的方式配对时,如何从中提取值。