4

.NET 3.5 で着信 JSON サーバー側を解析する最良の方法を見つけようとしています。JSON形式でHttpWebResponseから「タイトル」を受け取っています。そのため、各タイトルを取得してデータベースに保存する必要があります。そのため、各タイトルを取得するためのコードを提供してください。

public class MyObject
{
    public ArrayList list { get; set; }
}

    var request = WebRequest.Create("https://api.dailymotion.com/videos?fields=description,thumbnail_medium_url%2Ctitle&search=Good+Morning");
    using (var twitpicResponse = (HttpWebResponse)request.GetResponse())
    {
        using (var reader = new StreamReader(twitpicResponse.GetResponseStream()))
        {
            JavaScriptSerializer js = new JavaScriptSerializer();
            string objText = reader.ReadToEnd();
            MyObject myojb = (MyObject)js.Deserialize(objText, typeof(MyObject));
        }
    }

myojb でタイトルを取得していますが、myojb から各タイトルを取得する方法を教えてください。

4

3 に答える 3

11

このコード スニペットを使用して、オブジェクトTitleを使用して取得しdynamicます。

.NET 4.0 以降

JavaScriptSerializer js = new JavaScriptSerializer();
var obj = js.Deserialize<dynamic>(reader.ReadToEnd());
foreach (var o in obj["list"])
{
    var title = o["title"];
}

.NET 3.5 以下

JavaScriptSerializer js = new JavaScriptSerializer();
var obj = js.Deserialize<Dictionary<string, object>>(reader.ReadToEnd());
foreach (var o in (ArrayList)obj["list"])
{
    if (o is Dictionary<string, object>)
        var title = (o as Dictionary<string, object>)["title"];
}

Linq の使用:

JavaScriptSerializer js = new JavaScriptSerializer();
var obj = js.Deserialize<Dictionary<string, object>>(reader.ReadToEnd());
var titles = ((ArrayList)obj["list"]).Cast<Dictionary<string, object>>()
                 .Select(s => s["title"].ToString()).ToArray<string>();
于 2012-11-07T14:25:18.080 に答える
4

dynamicオブジェクトにシリアライズする

using (var reader = new StreamReader(twitpicResponse.GetResponseStream()))
{
    JavaScriptSerializer js = new JavaScriptSerializer();
    var objects = js.Deserialize<dynamic>(reader.ReadToEnd());
    foreach (var o in objects)
    {
        Console.WriteLine(o["title"]);
    }
}
于 2012-11-07T13:59:02.143 に答える
0

「受信した JSON を解析する最善の方法を見つけようとしています」

私はjson.netを使用します。json データをデシリアライズ/シリアライズするのはとても簡単です。

ここを見てください:

JSONをサーバーに投稿する方法は?

于 2012-11-07T13:58:19.360 に答える