2010-11-18 2 views
0

다음 스 니펫 코드를 사용하여 Google 웹 검색 API에서 4 가지 결과를 얻을 수 있습니다. 나는 비난 된 API를 사용하고 있음을 알고 있지만 여기서는 무언가를 테스트하고 있으며 익숙 할 때 새로운 맞춤 검색 API를 사용할 것입니다. 지금은, 결과에있는 "unescapedUrl"에 대해 반환 된 결과를 구문 분석 할 수있는 방법이 궁금합니다. 기본적으로 반환 된 JSON의 "unescapedUrl"값을 네 개 모두 가져 오려고합니다. 내가 절대적으로 필요하지 않는 한 (지금은)이 함께 JSON.Net을 사용하지 않으필요한 정보에 대해서만 반환 된 JSON 객체를 어떻게 쉽게 파싱 할 수 있습니까?

var searchTerm = "pizza boxes"; 
     using (var web = new WebClient()) 
     { 
      web.Headers.Add("Referrer", "http://localhost:49360/"); 
      var result = web.DownloadString(String.Format(
        "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q={0}&rsz=4", 
        searchTerm)); 
      Console.WriteLine(result); 
     } 

:
다음은 내 코드입니다. 어떤 아이디어?

감사합니다.

+0

당신이를 통해 가고 싶어하지 않는 한 통증의 세계라면 JSON.Net과 같은 JSON 라이브러리를 사용해야한다. 당신은 왜 그것을 피하기 위해 그렇게 결정합니까, 어쨌든? –

+0

나는 그것을 피할 큰 이유가 없습니다. 나는 그것을 다운로드하고 그것을 Visual Studio와 함께 작동시키는 방법을 알아 내려고하고 싶지 않았습니다. 나는 VS에 능숙하지는 못하며 새로운 JSON.Net 라이브러리에 대한 참조를 추가하려고하면 아마도 엉망이 될 것입니다. 물론, 그게 내가해야 할 일이 있다면, 바로 그 일을하는 방법을 연구하기 시작할 것입니다. 반환 된 데이터를 deserialize (?)하는 방법이 있었으면 그냥 루프를 돌리고 모든 unescapedUrl 값을 가져 왔으면합니다. – Kevin

답변

1

형식을 만들어야하지만 System.Web.Extensions.dll에서 JavaScriptSerializer을 사용하려고 생각하십니까?

내가 아니라 구글 API를 알고 있지만 그것을 반환 것 간단한 JSON 속성 가방 있다면, 당신은 떨어져이 같은 간단한으로 얻을 수 말할 수 없다 :

System.Web.Script.Serialization.JavaScriptSerializer ser = new System.Web.Script.Serialization.JavaScriptSerializer(); 

System.Collections.Generic.Dictionary<string, object> dict = ser.DeserializeObject(@"{""key"":""value""}") as System.Collections.Generic.Dictionary<string, object>; 

Console.WriteLine(dict["key"].ToString()); 
+0

사실, 나는 그것을 고려하지 않았습니다. 주로 C# 클래스에 익숙하지 않기 때문에 (라이브러리? Namespaces?). 나는 그것을 지금 검사 할 것이고 그것이 나를 도울 것인지 알 것이다. 감사! – Kevin

+0

도움이 될만한 코드를 추가했습니다 – Laramie

+0

나는 올바른 길을 가고 있다고 생각합니다, Laramie. 다른 사이트에서 일부 코드를 읽었는데 게시 한 내용과 매우 유사합니다 (JavaScriptSerializer를 사용한다는 점에서). 좀 더 파헤 치고 내가 무엇을 생각해 낼 수 있는지 알아 보겠습니다.하지만 당신이 해결책을 찾도록 도와 준 것 같아요. 감사! – Kevin

관련 문제