Почему не может разобрать Json и Raw Result - шоу? - PullRequest
0 голосов
/ 04 июля 2019

Я хочу вернуть тело моего результата в правильном формате вместо необработанного результата.

  public class tbl_Product
  {   
   public tbl_Product()
    {
        tbl_ProductPricing = new HashSet<tbl_ProductPricing>();
    }

    public Guid Id { get; set; }      
    public string ProductCode { get; set; }
    public string ProductName { get; set; }        

    [InverseProperty("Product")]
    public virtual ICollection<tbl_ProductPricing> tbl_ProductPricing { get; set; }
 }

Ниже моя функция WebAPI во время возврата:

[HttpGet]
public async Task<ActionResult<ICollection<tbl_Product>>> GetProductList()
{
    return Ok(await _context.tbl_Product.Include(a => a.tbl_ProductPricing).ToListAsync());
}

Тем не менее, он возвращает формат , который будет выглядеть так:

https://i.stack.imgur.com/BkDPy.jpg


Мой ожидаемый формат :

[
  {
    "id": "dc9874d0-9808-11e9-990d-014e614ad9ed",
    "ProductName": "Orange",
    "ProductCode": "A001",
    "ProductPricing":
    [
     {"id":"980874d0-014e-11e9-ad9e-114e614ad9ed",
      "Price":"5"
     }
    ]
  },
  {
    "id": "90d874d0-9808-11e9-990d-014e614ad9ed",
    "ProductName": "Apple",
    "ProductCode": "A002",
    "ProductPricing":
    [
     {"id":"ed0874d0-014e-11e9-ad9e-114e614ad9ed",
      "Price":"10"
     }
    ]
  }
 ]

Могу ли я узнать, какая часть моего кода неверна?

Ответы [ 2 ]

1 голос
/ 08 июля 2019

Это помогло мне, вы можете установить его глобально на своем статусе

  public void ConfigureServices(IServiceCollection services)
    {
       services.AddMvc().AddJsonOptions(options => options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore); 
    }
0 голосов
/ 04 июля 2019

Вы должны отформатировать возвращаемую строку вручную, используя Newtonsoft.Json.JsonConvert.SerializeObject ();

Тогда формат будет предсказуемым

(Кроме того, я рекомендую вставить вСтрока результата, чтобы мы могли детально сравнить два, а не просто изображение, на котором не показан весь ответ; запуск различий был бы моим первым действием, чтобы проверить, происходит ли что-то странное, но я не могу сделать это наизображение)

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