Как получить ответ JSON на .NET Core 2.1 с атрибутом класса - PullRequest
0 голосов
/ 04 февраля 2019

Я создаю службу в ASP .NET Core 2.1 и не могу получить ответ Json с атрибутом класса.

Это класс ShopItem:

 [JsonObject(MemberSerialization.OptIn)]
public class ShopItem
{
    [JsonProperty]
    public int id { get; set; }
    [JsonProperty]
    public String ItemName { get; set; }
    [JsonProperty]
    public string ItemQty { get; set; }
    [JsonProperty]
    public int ListId { get; set; }

    public ShopItem()
    {

    }
    [JsonConstructor]
    public ShopItem(int _id, String _ItemName, string _ItemQty, int _ListId)
    {
        id = _id;
        ItemName = _ItemName;
        ItemQty = _ItemQty;
        ListId = _ListId;
    }
}

Это класс ShopList, содержащий списокпредметов магазина

[JsonObject(MemberSerialization.OptIn)]
public class ShopList
{
    [JsonProperty]
    public int id { get; set; }
    [JsonProperty]
    public String ListName { get; set; }
    [JsonProperty]
    public string Store { get; set; }
    [JsonProperty]
    public int UserId { get; set; }
    [JsonProperty]
    public List<ShopItem> list = new List<ShopItem>();

    public ShopList()
    {

    }
    public ShopList(int _id, String _ListName, string _Store, int _UserId)
    {
        id = _id;
        ListName = _ListName;
        Store = _Store;
        UserId = _UserId;
    }
}

Это мой класс контроллера

[Route("api/[action]")]
public class ShopListsRetriveControler : Controller
{
    //get all Shoping lists
    // GET: api/<controller>
    [ActionName("GetAllShopLst")]
    [HttpGet]
    public List<ShopList> getAllLists()
    {
        return DAL._GetAllShopLst();
        //return Ok(DAL._GetAllShopLst());
    }
    [HttpGet("getAllListsRecords")]
    public JsonResult getAllListsRecords()
    {
        JsonResult jr = Json(DAL._GetAllShopLst());
        Newtonsoft.Json.JsonSerializerSettings jsonSerializerSettings = new Newtonsoft.Json.JsonSerializerSettings();
        jsonSerializerSettings.TypeNameHandling = Newtonsoft.Json.TypeNameHandling.All;
        return Json(DAL._GetAllShopLst(),jsonSerializerSettings);
    }

}

Результат моего кода:

{
"list":    [
        {
     "id": 1,
     "itemName": "Stvar1",
     "itemQty": "1 kom",
     "listId": 1
  },
        {
     "id": 2,
     "itemName": "Stvar2",
     "itemQty": "2 kom",
     "listId": 1
  },
        {
     "id": 3,
     "itemName": "Stvar3",
     "itemQty": "3 kom",
     "listId": 1
  },

]
"id": 1,
"listName": "Lista1",
"store": "          ",
"userId": 0
} 

Как я могу получить имена типов в ответ.Я много гуглю, но не могу найти то, чего не хватает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...