2016-11-22 12 views
0

子データオブジェクト配列を使用してJsonArrayを作成するにはどうすればよいですか?私はWebサービスとC#を使用しています。Webサービスで配列arrayをjsonにする方法C#

[{ 
    "name": "Deadpool", 
    "url": { 
     "small": "http://api.android.info/images/small/deadpool.jpg", 
     "medium": "http://api.android.info/images/medium/deadpool.jpg", 
     "large": "http://api.android.info/images/large/deadpool.jpg" 
    }, 
    "time": "February 12, 2016" 
}, 
{ 
    "name": "The Jungle Book", 
    "url": { 
     "small": "http://api.android.info/images/small/book.jpg", 
     "medium": "http://api.android.info/images/medium/book.jpg", 
     "large": "http://api.android.info/images/large/book.jpg" 
    }, 
    "time": "April 15, 2016" 
}, 
{ 
    "name": "X-Men: Apocalypse", 
    "url": { 
     "small": "http://api.android.info/images/small/xmen.jpg", 
     "medium": "http://api.android.info/images/medium/xmen.jpg", 
     "large": "http://api.android.info/images/large/xmen.jpg" 
    }, 
    "time": "May 27, 2016" 
}] 
+0

あなたは正確に何をしようとしていますか?現在の質問はそれほど明確ではありません。あなたの質問にいくつかの詳細を追加できますか? –

+0

データへのアクセス方法を教えてください。データベースから?あなたはlinqを使いますか? – Yanga

+0

私はあなたが望むものは、あなたの例のようにjsonarrayにあなたのデータを変換するあなたのクラス構造を作成する方法です。これはあなたが期待しているものです – Seminda

答えて

1

まず、モデルを出力することができ、与えられたデータを作成します。

私はJsonArrayの結果は以下のようになりたいです。 MovieModelが必要です。ムービーに複数の画像サイズとURLが保存されている場合は、辞書を使用します。

UPDATED

MovieModel.cs

public class MovieModel 
{ 
    public string Name { get; set; } 
    public Dictionary<string,string> Url { get; set; } 
    public string Time { get; set; } 
} 

は今、あなたはNugetパッケージからNewtonsoft.Jsonをインストールする必要があります。それをインポートします。

using Newtonsoft.Json; 

SerializeObject()メソッドを使用してモデルを初期化し、Jsonに変換します。実際のアプリケーションで

var movieList = new List<MovieModel> 
{ 
    new MovieModel 
    { 
     MovieName = "Deadpool", 
     Time = DateTime.UtcNow.ToString("t"), 
     Url = new Dictionary<string, string> 
     { 
      { "small", "http://api.android.info/images/small/deadpool.jpg" }, 
      { "medium", "http://api.android.info/images/medium/deadpool.jpg" } 
     } 
    } 
    // .. add more movies .. // 
}; 

// convert to camelcase and set indentation 
var output = JsonConvert.SerializeObject(
    movieList, 
    Formatting.Indented, 
    new JsonSerializerSettings 
    { 
     ContractResolver = new CamelCasePropertyNamesContractResolver() 
    } 
); 

// testing output on console 
Console.WriteLine(output); 

、あなたはこの例で使用されるように自分自身でそれを初期化しないで、データベースからデータを取得することにより、作品のインスタンスを作成します。

+0

それはmr.abdulが動作しますが、結果 "url":[{"small": "http ....."、 "medium": "http" .... "}] リストデータ" url "に" ["を入れたくない –

+0

なぜそれを削除しますか? Jsonの角括弧は項目の配列を意味します。削除すると、アプリケーションを消費するとオブジェクトに逆シリアル化されてしまう可能性があります。 – abdul

+0

チュートリアルではjsonがそうであるので、私はそのように作成したい、 あなたはこのURLをチェックすることができます:api.androidhive.info/json/glide.json .. –

関連する問題