2011-10-13 3 views
1

Google JSON 응답 양식을 구문 분석하려고합니다.VB.NET에서 Google 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 여기에 다음과 같이 :

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

어떤 뻔뻔스러운 문제 나 솔루션을 내가 할 수 있는가 : PasteBin

을 나는 다음과 같은 예외가 발생 점점 계속 이것은 내가 현재 가지고있는 것입니다 도구?

편집 :

구글에서 JSON 응답 : 그냥 계속 목적 JSON Response

편집

다음하는 오류는 페이스 북 페이지의 pagemap 노드 내부의 "":에 의해 실제로 맡았다됩니다 . 나는 다음과 같이 정리 함수를 호출에 의존 한 : 사람이 더 나은 방법이

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

있으면 알려 주시기 바랍니다!

다시 한번 감사드립니다. 그것은 다음과 같습니다

+0

JSON을 살펴 보셨습니까? 여기에 포함시킬 수 있습니까? –

+0

@JonSkeet - 안녕 존, 내 질문에 대한 의견을 말씀 드릴 수 없습니다! * shock * "flowers"를 검색하는 예제에 따라 응답을 추가했습니다. – f0x

답변

2

는에 문제가 년대 JSON의 비트입니다 :

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

내가 JSON 전문가가 아니지만, 그것은 그 놀랄 수 있습니다 이유를 알 수 있습니다. 앞서 언급했듯이 Json.NET (적어도 JObject)으로 구문 분석 할 수 있으므로 대신 사용하려고 할 수 있습니다. 관련 여전히


원래 대답은

DeserializeObject 방법은 지정이 직렬화 복원 방법과 같은 특정 유형의 객체 그래프의 루트를 캐스팅하려고하지 않습니다

Deserialize 메서드.

어쨌든 gResponseClass으로 전송하면 놀랄 것입니다. 대신 Deserialize 방법을 사용해 보셨습니까?

(나는 컴파일 타임 오류가 정직하게 예상 한 것 - 당신이 엄격하고 옵션을 명시 적 옵션을해야합니까?) 잘이 직면하고있는 문제가 될 수 있지만이 처음이다하지 않을 수 있습니다

내가 바라는 것은 어쨌든 :) JSON은 JSON.NET으로 파싱을한다.

+0

Jon에게 감사드립니다. JSON.NET을 사용해 보겠습니다. 나는 또한 Deserialize를 시도했다 - 나의 질문을 업데이트했다. – f0x

+0

와우.그것은 실제로 JSON 응답이었습니다. 내가 dassumed_, google json wouldnt가 나에게 혼전을주고있는 나의 결함 때문에 내가 didnt 한 유일한 장소이었다! 검색 매개 변수를 변경하고'Deserialize'와 잘 맞습니다. 이 문제를 피하기위한 조언이 있습니까? – f0x

+0

@ f0x : 전혀 아녜요, 두렵습니다. JSON에 대한 경험이 거의 없습니다. –