JSON.net的新手,示例代码

时间:2011-12-30 14:08:27

标签: c# windows-phone-7 rest json.net

我开始使用从DNLA服务器获取信息的新WP7应用程序。服务器支持REST协议的JSON语言。我做了一些研究,发现json.net非常好推荐。

我可以使用http://192.168.1.1:234/rest/status?media=json获取数据 给我: {"serverStatus":"STARTED","renderers":[{"uuid":"00a0965fa15c","ipAddress":"192.168.1.10","name":"KDL-52NX803","profileId":"9","status":"ACTIVE"},{"uuid":"1829220b083f","ipAddress":"192.168.1.13","name":"Windows Media Player","profileId":"1","status":"INACTIVE"},{"uuid":"5d70ac53cf8e","ipAddress":"192.168.1.14","name":"Unrecognized device","profileId":"1","status":"UNKNOWN"},{"uuid":"60465a95eec4","ipAddress":"192.168.1.22","name":"Playstation 3","profileId":"4","status":"UNKNOWN"},{"uuid":"001dd860bce4","ipAddress":"192.168.1.9","name":"Xbox 360","profileId":"3","status":"INACTIVE"}]}

我对c#非常陌生,我已经阅读了官方的Json.NET文档,但我更愿意看到示例代码让我感动。 我创建了列表框来收集“渲染器”数据,并创建了TextBlock用于服务器的当前“serverStatus”。

如果有人可以提供帮助,我将非常感谢您的努力

1 个答案:

答案 0 :(得分:5)

首先,http://json2csharp.com/可以放入你的json并创建一个poco。

public class Renderer
{
    public string uuid { get; set; }
    public string ipAddress { get; set; }
    public string name { get; set; }
    public string profileId { get; set; }
    public string status { get; set; }
}

public class RootObject
{
    public string serverStatus { get; set; }
    public Renderer[] renderers { get; set; }
}

This页面上有关于serialize / dserialize的简单示例。

RestSharp是支持WP7的出色的HTTP API客户端。它会为你deserialzie,也允许你实现自己的序列化/解串器。