[英]How to Set Max Json Length in .net core
在 .net 核心技術之前我們可以在 web.config 中添加 maxjson 大小,但是在 .net 核心如何設置最大 Z6438DEEC16ECDF2FC4 在哪里?
您需要在序列化級別進行管理。 不確定您是新的 Microsoft Json 還是 NetwtonSoft json
當 Microsoft 需要使用DataContractJsonSerializer時, NetwontSoft 看看 mel-green 的解決方案時,您可以用字節大小替換進度,如果大則拋出錯誤。 另一種選擇是使用選項並設置您自己的不交易但在大時拋出錯誤的ITraceWriter 。
提示,使用 Json 時,您可以裝飾屬性以縮短屬性名稱。 像這樣:
[JsonProperty("A1")]
private int SomeReallyLongPropertyName;
確保雖然不要重復名稱,但 json 將通過別名 map 然后。
使 json 更短的另一種方法是將其轉換為更小的東西。
[JsonConverter(typeof(UTCDateTimeConverter))]
[JsonProperty("DT")]
public DateTime Date { get; set; }
轉換器:
public sealed class UTCDateTimeConverter : JsonConverter
{
public override bool CanConvert(Type objectType)
{
return objectType == typeof(DateTime?);
}
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
if (reader.Value is null) return null;
try
{
return new DateTime((long)reader.Value);
}
catch
{
if (DateTime.TryParse(reader.Value.ToString(), out DateTime d))
return d;
else
return null;
}
}
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
var val = ((DateTime)value).Ticks;
writer.WriteValue(val);
}
}
您還可以通過執行上述操作來裝飾您想要轉換的 class 以警告大小是否過大,並更改 WriteJson 的實現以監視您的大小,但這不是您所要求的,因為它沒有解決整個 stream。
您可以在序列化級別處理此問題。 您是否嘗試過執行以下操作?
// Creates an instance of your JavaScriptSerializer
// and Setting the MaxJsonLength
var serializer = new JavaScriptSerializer() { MaxJsonLength = 86753090 };
// Perform your serialization
serializer.Serialize("Your JSON Contents");
在.net core技術之前,我們可以在web.config中添加maxjson大小。但是在.net core中,如何設置maxjson大小? 在哪里?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.