2011-08-12 44 views
1
public void wc_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs c) 
{ 
    var o = JObject.Parse(c.Result); 
    var videos = from v in o.Children() select new ydata { lyric = (string)v["lyric"], artist = (string)v["artist"], song = (string)v["song"], statusCod = (string)v["status"]}; 
    lbLyric.ItemsSource = videos; 
} 
public class ydata 
{ 
    public string lyric { get; set; } 
    public string artist { get; set; } 
    public string song { get; set; } 
    public string statusCod { get; set; } 
} 

JSON:解析JSON的Windows Phone 7水溼訪問孩子的錯誤

{ 
    "song":"Trust_In_Me", 
    "lyric":"How could I see You when I was so blind\u000aHow could I grasp You when I was far behind\u000aHow could I hear You when I was so deaf\u000aHow could I get up when I had been left\u000aBut You said don’t worry\u000aFor I’ve healed the blind man\u000aAnd I’ve set the captives free\u000aAnd You said don’t worry\u000aFor all you’ve gotta do\u000aIs put your trust in Me\u000aHow could I be clean when I was so dirty\u000aHow could I be made whole when I was torn apart\u000aMake me whole \u000aMake me whole\u000aMake me whole again\u000a", 
    "msgcode":"", 
    "status":"successful", 
    "artist":"Katy_Perry" 
} 

它返回錯誤:

new ydata { lyric = (string)v["lyric"], artist = (string)v["artist"], song = (string)v["song"], statusCod = (string)v["status"]}; 
:在行Newtonsoft.Json.Linq.JProperty無法訪問的孩子值

也許是因爲我的json只有一個項目,因爲它在有多個項目的其他json中工作。我該如何解決這個問題?

+0

謝謝你幫我編輯問題。 –

回答

0

它變成很簡單....這裏是我做過什麼:

 var o = JObject.Parse(c.Result); 
      txtLyric.Text = (string)o["lyric"]; 
      lyricSongArtist.Text = "by " + (string)o["artist"]; 
      lyricSongName.Text = (string)o["song"]; 

希望這有助於別人。