2

我有一个返回 JSON 的 URL。我正在 Windows Phone 中开发一个应用程序,我想通过发送 url 来获取该 json 数据,然后将其转换为字符串并从中提取数据。我已经下载了 json.net 来读取 json 数据。
我是否必须反序列化数据.. 有必要吗?
我不能只获取字符串格式的数据然后解析它。

我正在使用以下代码来读取字符串格式的 json 数据。

Array Movies = jObject["movies"].ToArray();
foreach (JToken Movie in Movies)
    MessageBox.Show(Movie["title"].ToString());

json 看起来像这样:

这部电影讲述了迈克(塔图姆饰)带领一位名叫小子(佩蒂弗饰)的年轻舞者在他的羽翼下,教他参加聚会、搭讪女人和轻松赚钱的艺术。-- (C) Warner Bros.","posters":{"thumbnail":"http://content8.flixster.com/movie/11/16/66/11166610_mob.jpg","profile":"http: //content8.flixster.com/movie/11/16/66/11166610_pro.jpg","详细":"http://content8.flixster.com/movie/11/16/66/11166610_det.jpg","原文":"http://content8.flixster.com/movie/11/16/66/11166610_ori.jpg"},"abridged_cast":[{"name":"Channing Tatum","id":"162661835" ,"字符":["魔术麦克"]},{"姓名":"亚历克斯·帕蒂弗","id":"326298019","

`

我只想要电影名称和标题。

4

1 回答 1

0

如果您的问题是“是否有必要反序列化”,那么答案是否定的,没有必要。

也就是说,在处理数据服务器端时,通常首选将 JSON 字符串反序列化为强类型对象,因为它可以减少运行时错误并更容易测试代码。

使用JSON.Net 的示例:

public class Movie
{
    public string Name { get; set; }
    public string Title { get; set; }
}

public Movie Convert(string jsonString)
{
    return JsonConvert.DeserializeObject<Movie>(jsonString);
}

还有其他选项可将 JSON 反序列化为对象。如果你有一个代表 JSON 对象的 DataContract,你可以使用DataContractJsonSerializer

于 2012-10-23T14:39:52.800 回答