From d13f7a4db6859b42116e346e479c96ca2e859419 Mon Sep 17 00:00:00 2001 From: DHR60 Date: Wed, 6 May 2026 07:36:26 +0000 Subject: [PATCH] Fix json compact (#9246) --- v2rayN/ServiceLib/Common/JsonUtils.cs | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/v2rayN/ServiceLib/Common/JsonUtils.cs b/v2rayN/ServiceLib/Common/JsonUtils.cs index 7e2b7f78..951cdbd7 100644 --- a/v2rayN/ServiceLib/Common/JsonUtils.cs +++ b/v2rayN/ServiceLib/Common/JsonUtils.cs @@ -17,6 +17,13 @@ public class JsonUtils Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping }; + private static readonly JsonSerializerOptions _defaultSerializeNoIndentedOptions = new() + { + WriteIndented = false, + DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull, + Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping + }; + private static readonly JsonSerializerOptions _nullValueSerializeOptions = new() { WriteIndented = true, @@ -24,6 +31,13 @@ public class JsonUtils Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping }; + private static readonly JsonSerializerOptions _nullValueSerializeNoIndentedOptions = new() + { + WriteIndented = false, + DefaultIgnoreCondition = JsonIgnoreCondition.Never, + Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping + }; + private static readonly JsonDocumentOptions _defaultDocumentOptions = new() { CommentHandling = JsonCommentHandling.Skip @@ -104,7 +118,13 @@ public class JsonUtils { return result; } - var options = nullValue ? _nullValueSerializeOptions : _defaultSerializeOptions; + var options = (nullValue, indented) switch + { + (true, true) => _nullValueSerializeOptions, + (true, false) => _nullValueSerializeNoIndentedOptions, + (false, true) => _defaultSerializeOptions, + _ => _defaultSerializeNoIndentedOptions + }; result = JsonSerializer.Serialize(obj, options); } catch (Exception ex)