我开始使用从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”。
如果有人可以提供帮助,我将非常感谢您的努力
答案 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,也允许你实现自己的序列化/解串器。