2014-09-04 128 views
0

我試圖解析這可以在這裏找到一個以.json文件 - http://files.star-made.org/releasebuildindex.json在這個片段我在此網站上發現 -​​JsonValue.Parse不返回正確的結果

 WebClient webClient = new WebClient(); 
     dynamic result = JsonValue.Parse(new WebClient().DownloadString("http://files.star-made.org/releasebuildindex.json")); 
     Console.WriteLine(result.builds.version); 

隨着文件的當前版本(每週更新一次或更新遊戲更新),它應該返回字符串「0.163」,但它現在返回「默認」,經過一些混亂之後,如果該標籤實際上不存在,它會返回。

我不知道Json,也不能編輯該文件,因爲我不是它的創建者,任何幫助都不勝感激。

-James

回答

1

構建是一個數組。你得到的版本是這樣的:

Console.WriteLine(results.builds[0].version); 

探討您可以使用http://json2csharp.com/一個JSON字符串的結構。

1

動態關鍵字很好,但靜態代碼檢查和自動完成更好。要啓用此功能,您需要擁有POCO(Plain Old CLR(通用語言運行時)對象)。

複製JSON和粘貼特殊 - >粘貼爲JSON類(你至少需要Visual studio 2012.2 RC):

public class Rootobject 
    { 
     public string indexfileversion { get; set; } 
     public string type { get; set; } 
     public Build[] builds { get; set; } 
    } 

    public class Build 
    { 
     public string version { get; set; } 
     public string build { get; set; } 
     public string rawVersion { get; set; } 
     public string path { get; set; } 
    } 

然後你可以使用:

var json = new WebClient() 
    .DownloadString("http://files.star-made.org/releasebuildindex.json"); 
var result = new JavaScriptSerializer().Deserialize<Rootobject>(json); 
Console.WriteLine(result.builds[0].version);