是否有sdk/lib来解析由Google Contact API v3返回的gdata(json)数据?
问题描述:
我目前通过GoogleContact API v3访问谷歌联系人。我使用以下命令:是否有sdk/lib来解析由Google Contact API v3返回的gdata(json)数据?
"https://www.google.com/m8/feeds/contacts/default/full?access_token=" + token.access_token + "&alt=json&v=3&q=Susan"
它以gdata格式返回一个json结构响应。
{
"version": "1.0",
"encoding": "UTF-8",
"feed": {
"xmlns": "http://www.w3.org/2005/Atom",
"xmlns$openSearch": "http://a9.com/-/spec/opensearch/1.1/",
"xmlns$batch": "http://schemas.google.com/gdata/batch",
"xmlns$gd": "http://schemas.google.com/g/2005",
"xmlns$gContact": "http://schemas.google.com/contact/2008",
"gd$etag": "W/\"A0IGQ3gycSt7I2A9XR5WEk4.\"",
"id": {
"$t": "[email protected]"
},
"updated": {
"$t": "2017-01-24T06:32:02.699Z"
},
"category": [{
"scheme": "http://schemas.google.com/g/2005#kind",
"term": "http://schemas.google.com/contact/2008#contact"
}],
"title": {
"$t": "User1 contact"
},
"link": [{
"rel": "alternate",
"type": "text/html",
"href": "http://www.google.com/"
}, {
"rel": "http://schemas.google.com/g/2005#feed",
"type": "application/atom+xml",
"href": "https://www.google.com/m8/feeds/contacts/darewreckk%40gmail.com/full?v=3"
}, {
"rel": "http://schemas.google.com/g/2005#post",
"type": "application/atom+xml",
"href": "https://www.google.com/m8/feeds/contacts/firstlast%40gmail.com/full?v=3"
}, {
"rel": "http://schemas.google.com/g/2005#batch",
"type": "application/atom+xml",
"href": "https://www.google.com/m8/feeds/contacts/firstlast%40gmail.com/full/batch?v=3"
}, {
"rel": "self",
"type": "application/atom+xml",
"href": "https://www.google.com/m8/feeds/contacts/firstlast%40gmail.com/full?alt=json&q=First&max-results=25&v=3"
}],
"author": [{
"name": {
"$t": "First Last"
},
"email": {
"$t": "[email protected]"
}
}],
"generator": {
"version": "1.0",
"uri": "http://www.google.com/m8/feeds",
"$t": "Contacts"
},
"openSearch$totalResults": {
"$t": "2"
},
"openSearch$startIndex": {
"$t": "1"
},
"openSearch$itemsPerPage": {
"$t": "25"
},
"entry": [{
"gd$etag": "\"QHc9fjVSLyt7I2A9WxBXFUgKRAI.\"",
"id": {
"$t": "http://www.google.com/m8/feeds/contacts/firstlast%40gmail.com/base/8"
},
"updated": {
"$t": "2010-01-26T23:59:21.966Z"
},
"app$edited": {
"xmlns$app": "http://www.w3.org/2007/app",
"$t": "2010-01-26T23:59:21.966Z"
},
"category": [{
"scheme": "http://schemas.google.com/g/2005#kind",
"term": "http://schemas.google.com/contact/2008#contact"
}],
"title": {
"$t": "FirstName LastName"
},
"link": [{
"rel": "http://schemas.google.com/contacts/2008/rel#photo",
"type": "image/*",
"href": "https://www.google.com/m8/feeds/photos/media/first.name%40gmail.com/8?v=3"
}, {
"rel": "self",
"type": "application/atom+xml",
"href": "https://www.google.com/m8/feeds/contacts/first.name%40gmail.com/full/8?v=3"
}, {
"rel": "edit",
"type": "application/atom+xml",
"href": "https://www.google.com/m8/feeds/contacts/first.name%40gmail.com/full/8?v=3"
}],
"gd$name": {
"gd$fullName": {
"$t": "First Last"
},
"gd$givenName": {
"$t": "First"
},
"gd$familyName": {
"$t": "Last"
}
},
"gd$email": [{
"rel": "http://schemas.google.com/g/2005#other",
"address": "[email protected]",
"primary": "true"
}]
}, {
"gd$etag": "\"RX0_cTVSLyt7I2A9WxFTEUUKRwY.\"",
"id": {
"$t": "http://www.google.com/m8/feeds/contacts/first.last%40gmail.com/base/7cba75689bbb171"
},
"updated": {
"$t": "2010-04-02T03:47:04.349Z"
},
"app$edited": {
"xmlns$app": "http://www.w3.org/2007/app",
"$t": "2010-04-02T03:47:04.349Z"
},
"category": [{
"scheme": "http://schemas.google.com/g/2005#kind",
"term": "http://schemas.google.com/contact/2008#contact"
}],
"title": {
"$t": ""
},
"link": [{
"rel": "http://schemas.google.com/contacts/2008/rel#photo",
"type": "image/*",
"href": "LinkUrl"
}, {
"rel": "self",
"type": "application/atom+xml",
"href": "SelfUrl3"
}, {
"rel": "edit",
"type": "application/atom+xml",
"href": "EditUrl3"
}],
"gd$email": [{
"rel": "http://schemas.google.com/g/2005#other",
"address": "[email protected]",
"primary": "true"
}]
}]
}
}
目前,我有响应和创建自己的方法来访问每个申请。有没有一个已经定义的库,将它转换成更可读的对象?
例如,“gd $ name”我猜测是名称的Google数据表示形式。有没有办法将它转换为一个gData联系对象,它给我的名称字段,而不必编写我自己的gData分析器?
感谢 德里克
答
的API参考可以在这里找到:https://developers.google.com/google-apps/contacts/v3/
一个.NET SDK(客户端库)可以在这里找到:如何使用客户端库https://www.nuget.org/packages/Google.GData.Contacts/
例子可以在API参考中找到。