从Windows Phone 8.1中的JSON网页读取对象

时间:2015-03-25 16:27:58

标签: json windows-phone-8

我想阅读一些List<>来自JSON文件的Object,由PHP文件生成。 当我尝试编译它时,我遇到了一些问题,似乎智能手机正在等待。此外,我不确定Windows Phone的读取是否正确。预先感谢您的帮助 ! 这是JSON文件示例:

{"giocatori":[{"Giocatore":"124","Cognome":"DE SANCTIS","Ruolo":"P","Squadra":"ROM"},{"Giocatore":"140","Cognome":"MIRANTE","Ruolo":"P","Squadra":"PAR"},{"Giocatore":"156","Cognome":"SKORUPSKI","Ruolo":"P","Squadra":"ROM"}],"success":1}

这些是对象:

public class Giocatori
{
    public string Giocatore { get; set; }
    public string Cognome { get; set; }
    public string Ruolo { get; set; }
    public string Squadra { get; set; }

    public override string ToString()
    {
        return Giocatore + " " + Cognome + " " + Ruolo + " " + Squadra;
    }
}

public class RootObject
{
    public List<Giocatori> giocatori { get; set; }
    public int success { get; set; }
}

以下是方法:

 private async Task<RootObject> getPlayers()
    {
        Uri serviceUri = new Uri("myURL");
        HttpClient client = new HttpClient();
        string jsonString = await client.GetStringAsync(serviceUri);
        MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString)); 
        RootObject RootObject = new RootObject();
        DataContractJsonSerializer ser = new DataContractJsonSerializer(RootObject.GetType()); 
        RootObject = ser.ReadObject(ms) as RootObject;
        return RootObject;
    }

    private void loadPlayers()
    {
        RootObject players =  getPlayers().Result;
        setComboboxs(players.giocatori); // The method which I need to use the 
    }

1 个答案:

答案 0 :(得分:2)

通过Nuget下载JSON.Net软件包。

右键单击项目&gt;管理Nuget&gt; Json.net&gt;安装

enter image description here

根据http://json2csharp.com/,你的班级应该是这样的。

public class Giocatori
    {
        public string Giocatore { get; set; }
        public string Cognome { get; set; }
        public string Ruolo { get; set; }
        public string Squadra { get; set; }
    }

    public class RootObject
    {
        public List<Giocatori> giocatori { get; set; }
        public int success { get; set; }
    }

RootObject可以重命名为您喜欢的任何内容。

收到JSON后

JsonConvert.DeserializeObject<RootObject>("jsonstring");