2017-08-12 203 views
4

我有一個web api,返回一個json對象供我在我的網站上使用。問題是這樣的:JSON響應在使用asp.net核心的web api中被截斷

[{「installment」:1,「date」:「03/01/2016」,「amount」:「27.28」,「status」:「\」01BI000657 \「」}, { 「批」:2 「日期」: 「2016年4月1日」, 「量」: 「49.25」, 「狀態」: 「\」 01BI000699 \ 「」},{ 「批」:3, 「日期」 : 「2016年5月1日」, 「量」: 「56.31」, 「狀態」: 「\」 01BI000745 \ 「」},{ 「批」:4 「日期」: 「2016年6月1日」,」量 「:」 53.43" , 「狀態」: 「\」 01BI000811 \ 「」},{ 「批」:5 「日期」: 「2016年7月1日」, 「量」: 「60.52」, 「狀態」 : 「\」 01EI279932 \ 「」},{ 「批」:6, 「日期」: 「2016年8月1日」, 「量」: 「57.95」, 「狀態」: 「\」 01BI000934 \ 「」}, { 「批」:7, 「日期」: 「2016年9月1日」, 「量」: 「60.24」, 「狀態」: 「\」 01BI001015 \ 「」},{ 「批」:8, 「日期」 : 「2016年10月1日」, 「量」: 「67.36」, 「狀態」: 「\」 01EI298127 \ 「」},{ 「批」:9 「日期」: 「2016年11月1日」,」量 「:」 65.30" , 「狀態」: 「\」 01BI001185 \ 「」},{ 「批」:10, 「日期」: 「2016年12月1日」, 「量」: 「72.44」, 「狀態」 : 「\」 01BI001277 \ 「」},{ 「批」:11, 「日期」: 「2017年1月1日」,「量「:」 70.75" , 「狀態」: 「\」 01BI001380 \ 「」},{ 「批」:12, 「日期」: 「2017年2月1日」, 「量」: 「73.55」, 「狀態」: 「\」 01BI001486 \ 「」},{ 「批」:13, 「日期」: 「2017年3月1日」, 「量」: 「89.28」, 「狀態」: 「\」 01BI001567 \ 「」},{ 「批」:14, 「日期」: 「2017年4月1日」, 「量」: 「80.00」, 「狀態」: 「\」 01BI001691 \ 「」},{ 「批」:15, 「日期」: 「2017年5月1日」, 「量」: 「87.23」, 「狀態」: 「\」 01BI001822 \ 「」},{ 「批」:16, 「日期」: 「2017年6月1日」,「量「:」 86.63" , 「狀態」: 「\」 01BI002011 \ 「」},{ 「批」:17, 「日期」: 「2017年7月1日」, 「量」: 「93.89」, 「狀態」: 「\」 01BI002172 \ 「」},{ 「批」:18, 「日期」: 「2017年8月1日」, 「量」: 「93.78」, 「狀態」: 「\」 01BI002369 \ 「」},{ 「批」:19, 「日期」: 「2017年9月1日」, 「量」: 「97.49」, 「狀態」: 「\」 \ 「」},{ 「批」:20, 「日期」:」 2017" 年10月1日, 「量」: 「104.81」, 「狀態」: 「\」 \ 「」},{ 「批」:21, 「日期」: 「2017年11月1日」, 「量」: 「105.50」, 「狀態」: 「\」 \ 「」},{ 「批」:22, 「日期」: 「2017年12月1日」, 「量」: 「112.87」, 「狀態」: 「\」 \ 「」},{ 「批」:23, 「日期」: 「2018年1月1日」, 「量」: 「114.15」, 「狀態」: 「\」 \ 「」},{ 「批」:24 ,「日期」: 「2018年2月1日」, 「量」: 「118.67」, 「狀態」: 「\」 \ 「」},{ 「批」:25, 「日期」: 「2018年3月1日」, 「量」 :「131.57」,「狀態」:「\」\「」},{「ins

正如你所看到的它被截斷,它權重20kb,字符串長度是2033,所以我想知道是否有一個以某種方式增加響應的最大尺寸。我嘗試了web.config中的MaxJsonLength,但它不工作,可能是因爲.net核心方面,所以我有點迷路,爲什麼它被截斷。

回答

6

我不知道爲什麼JSON響應被在某一點截斷,但對我來說(ASP.NET核2.0),我不得不告訴Newtonsoft.Json忽略參考循環,像這樣:

public void ConfigureServices(IServiceCollection services) 
{ 
    services.AddMvc() 
     .AddJsonOptions(
      options => options.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore 
     ); 
}