在VB.NET中解析Google JSON响应

时间:2011-10-13 11:20:02

标签: asp.net vb.net json google-api

我正在尝试解析谷歌的JSON响应表单。这就是我目前所拥有的:

Dim x As New System.Web.Script.Serialization.JavaScriptSerializer
Dim gJson As String = ""

Dim wClient As New WebClient
wClient.Proxy = System.Net.HttpWebRequest.DefaultWebProxy
gJson = wClient.DownloadString("https://www.googleapis.com/...alt=json")
Dim results As gResponseClass = x.Deserialize(Of gResponseClass)(gJson)

gResponseClass如下:PasteBin

我不断抛出以下异常:

Invalid object passed in, member name expected. (6678): .... *the json response here* ...

我可以实施任何明显的问题或解决方案吗?

编辑

来自Google的JSON回复:JSON Response

修改

仅用于延续目的:错误确实由Facebook页面上"":节点内的pagemap来设置。我已经使用如下调用清理函数:

json = json.Replace(""""":", """page_id"":")
Return json

如果有人有更好的方法,请告诉我!

再次感谢。

1 个答案:

答案 0 :(得分:2)

看起来这是它遇到问题的JSON:

"": [
 {
  "page_id": "66721388277"
 }
],

我不是JSON专家,但我可以理解为什么会对此感到惊讶。正如我所提到的,它可以由Json.NET解析(至少作为JObject),因此您可能希望尝试使用它。


原始答案,仍然相关

DeserializeObject方法指定:

  

这种反序列化方法不会尝试将对象图的根转换为特定类型,就像使用Deserialize方法一样。

如果它设法转换为gResponseClass,我会感到惊讶。您是否尝试过使用Deserialize方法?

(我原本以为编译时错误是诚实的 - 你有明确的选项和选项吗?)

这可能不是你面临的问题,但这是我第一眼看到的东西:) JSON用JSON.NET解析好。