Json出力からJavaScriptSerializerを使用して確認してください。次に、json2csharp.comを使用して作成したクラスヘルパーiを確認します。問題はコントローラにあります。私は私の必要なJasonごとに正しい出力を得ていません。私はコントローラで正しいと思いますか?どこに問題がありますか?具体的なことを知りたいのであれば質問してください。C#クラスから正しいjson出力を得る
ヘルパークラスコード:
public class ItemsFromFile
{
public string ASIN { get; set; }
public string Title { get; set; }
public List<Product> products { get; set; }
}
public class ItemsDeatails
{
public List<ItemsFromFile> ItemsFromFile { get; set; }
}
public class File
{
public string nameLocator { get; set; }
public ItemsDeatails itemsDeatails { get; set; }
}
public class RootObject
{
public string Token { get; set; }
public File file { get; set; }
}
コントローラーコード:
if (type == "Salefreaks")
{
var token = ctx.BulkStores.FirstOrDefault(x => x.StoreName == store && x.Type == 1).Token;
var ItemsFromFile = new ItemsFromFile()
{
products = new List<Product>()
};
var ItemsDeatails = new ItemsDeatails()
{
};
var File = new File()
{
nameLocator = "testimport1"
};
var RootObject = new RootObject()
{
Token = token
};
var singleItems = ctx.BulkScannedItems.Where(x => x.UserSellerScanRequestId == id).ToList();
foreach (var item in singleItems)
{
ItemsFromFile.products.Add(new Product { ASIN = item.ASIN, Title = item.EbayTitle });
}
var json = new JavaScriptSerializer().Serialize(RootObject);
}
必要なJSON出力コード:
{
"Token": "7f3099b0-36b1",
"file": {
"nameLocator": "testimport1",
"itemsDeatails": {
"ItemsFromFile": [
{
"ASIN": "B011KVFT9Y",
"Title": "Disney Batman Durable Party Beach Outdoor Adventure Camp Chair w/ Storage Bag"
},
{
"ASIN": "B01D4KRBW2",
"Title": "High Quality Diy Oil Painting Paint Number Kit Theme-Romantic Street A Frameless"
}
]
}
}
}
私はあなたがルートオブジェクト上のファイルのプロパティを設定している...また、詳細オブジェクトに使用すると、Fileオブジェクトに詳細を割り当てていないように見える、またItemsFromFileことをどこにも表示されません。 – Trioj
単純に 'Json'メソッドを使うことができます。 'return Json(rootObject);' – Shyju