2017-05-06 37 views
-1

對於我的問題的糟糕解釋,我很抱歉。 我正在嘗試讀取包含數據的JSON數組。閱讀包含數組的JSON數組(?)C#

這裏的JSON的樣子:

{ 
    "playerstats": { 
     "steamID": "76561198071680006", 
     "gameName": "GameName", 
     "achievements": [ 
      { 
       "apiname": "AchievementName1", 
       "achieved": 0, <--- Data that I want to read 
       "unlocktime": 0 
      }, 
      { 
       "apiname": "AchievementName2", 
       "achieved": 0, <--- Data that I want to read 
       "unlocktime": 0 
      }, 
      { 
       "apiname": "AchievementName2", 
       "achieved": 1, <--- Data that I want to read 
       "unlocktime": 1477847680 
      } 
     ] 
     , 
     "success": true 
    } 
} 

我想看看Newtonsoft.Json以及如何使用但我在一個完全不知如何使用這個。任何幫助,將不勝感激。

+0

嘗試[json2csharp(http://json2csharp.com/)。 –

回答

0

您可以嘗試JsonConvert.DeserializeObject來讀取json數據。

public class Rootobject 
{ 
    public Playerstats playerstats { get; set; } 
} 

public class Playerstats 
{ 
    public string steamID { get; set; } 
    public string gameName { get; set; } 
    public Achievement[] achievements { get; set; } 
    public bool success { get; set; } 
} 

public class Achievement 
{ 
    public string apiname { get; set; } 
    public int achieved { get; set; } 
    public int unlocktime { get; set; } 
} 

你可以試試這個:

var filePath = path to your file; 

var jsonData = System.IO.File.ReadAllText(filePath); 

Rootobject objectValue = 
    Newtonsoft.Json.JsonConvert.DeserializeObject<Rootobject>(jsonData); 

注:你應該刪除您的JSON數據<--- Data that I want to read部分,因爲目前它不是一個有效的JSON格式。

您可以訪問到你想要的屬性,如該

objectValue.playerstats.achievements[0].achieved //0 
objectValue.playerstats.achievements[1].achieved //0 
objectValue.playerstats.achievements[2].achieved //1