2012-02-29 8 views
0

내 JSON 피드에 주요 요소를 가져 오려고하지만 다른 항목 만 가져 오지는 않습니까? 왜? 여기 내 코드입니다 : 그래서ListBox에 JSON 및 나머지 - 정보 없음

public MainPage() 
    { 
     InitializeComponent(); 
     GetData(); 
    } 

    private void GetData() 
    { 
     string uri = "http://api.bing.net/json.aspx?AppId=MY-ID&Version=2.0&Market=en-US&Query=Pizza&Sources=phonebook&latitude=33.8563&longitude=-118.1232"; 
     HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(new Uri(uri)); 
     request.BeginGetResponse(new AsyncCallback(ReadCallback), request); 

    } 

    private void ReadCallback(IAsyncResult asynchronousResult) 
    { 
     HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState; 
     HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asynchronousResult); 
     using (StreamReader streamReader1 = new StreamReader(response.GetResponseStream())) 
     { 
      string resultString = streamReader1.ReadToEnd(); 
      var ser = new DataContractJsonSerializer(typeof(RootObject)); 

      var stream = new MemoryStream(Encoding.Unicode.GetBytes(resultString)); 
      DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(RootObject)); 
      RootObject myBook = (RootObject)jsonSerializer.ReadObject(stream); 

      Deployment.Current.Dispatcher.BeginInvoke(() => Shops.ItemsSource = myBook.SearchResponse.Phonebook.Results); 

     } 
    } 

public class Query 
{ 
    public string SearchTerms { get; set; } 
} 

public class Result 
{ 
    public string Title { get; set; } 
    public string Url { get; set; } 
    public string Business { get; set; } 
    public string PhoneNumber { get; set; } 
    public string Address { get; set; } 
    public string City { get; set; } 
    public string StateOrProvince { get; set; } 
    public string CountryOrRegion { get; set; } 
    public string PostalCode { get; set; } 
    public double Latitude { get; set; } 
    public double Longitude { get; set; } 
    public string UniqueId { get; set; } 
    public string DisplayUrl { get; set; } 
} 

public class Phonebook 
{ 
    public int Total { get; set; } 
    public int Offset { get; set; } 
    public string LocalSerpUrl { get; set; } 
    public string Title { get; set; } 
    public List<Result> Results { get; set; } 
} 

public class SearchResponse 
{ 
    public string Version { get; set; } 
    public Query Query { get; set; } 
    public Phonebook Phonebook { get; set; } 
} 

public class RootObject 
{ 
    public SearchResponse SearchResponse { get; set; } 
} 

, 때 할 Shops.ItemsSource = myBook.SearchResponse.Phonebook.Results이 목록 상자에 추가하지만 프로젝트 이름 +가 목록 상자에서 여러 번 결과라고 ...

myBook.SearchResponse.Phonebook.Total을 수행하면 문제가 없습니다 ... "결과"영역에있는 Title, City 등을 제공하지 못할 수있는 몇 가지 이유가 있습니다. . 왜?

감사합니다. 당신의 설명에서

답변

0

, 나는 당신이 필요로하는 DataTemplate을

은 하나님 내용입니다

<ListBox.ItemTemplate> 
    <DataTemplate> 
     <StackPanel> 
      <TextBlock Text="{Binding City}" /> 
+0

을 시도 믿습니다! 나는이 문제에 영원히 맹세했다! 나는 구속력있는 것을하려고 노력했고 결코 일하지 않았다 ... 나는 내가 단계를 놓쳤다 고 생각한다! – user1239234

+0

누구든지 JSON 데이터를 POST하는 방법을 배우는 훌륭한 자료를 알고 있습니까? – user1239234

관련 문제