From c316a099f87c55577797cff36f2f1c190c30ecb7 Mon Sep 17 00:00:00 2001 From: LittleSheep Date: Wed, 23 Jul 2025 12:43:20 +0800 Subject: [PATCH] :bug: Trying to fix cloud file meta serialization issue --- DysonNetwork.Drive/Storage/CloudFile.cs | 4 ++-- .../Data/CloudFileReferenceObject.cs | 13 +++++++------ DysonNetwork.Shared/Proto/GrpcTypeHelper.cs | 7 ------- 3 files changed, 9 insertions(+), 15 deletions(-) diff --git a/DysonNetwork.Drive/Storage/CloudFile.cs b/DysonNetwork.Drive/Storage/CloudFile.cs index 1fb7153..8890215 100644 --- a/DysonNetwork.Drive/Storage/CloudFile.cs +++ b/DysonNetwork.Drive/Storage/CloudFile.cs @@ -119,11 +119,11 @@ public class CloudFile : ModelBase, ICloudFile, IIdentifiedResource UploadedAt = UploadedAt?.ToTimestamp(), // Convert file metadata FileMeta = ByteString.CopyFromUtf8( - System.Text.Json.JsonSerializer.Serialize(FileMeta, GrpcTypeHelper.SystemTextSerializerOptions) + JsonConvert.SerializeObject(FileMeta, GrpcTypeHelper.SerializerSettings) ), // Convert user metadata UserMeta = ByteString.CopyFromUtf8( - System.Text.Json.JsonSerializer.Serialize(UserMeta, GrpcTypeHelper.SystemTextSerializerOptions) + JsonConvert.SerializeObject(UserMeta, GrpcTypeHelper.SerializerSettings) ) }; diff --git a/DysonNetwork.Shared/Data/CloudFileReferenceObject.cs b/DysonNetwork.Shared/Data/CloudFileReferenceObject.cs index 600886c..6980771 100644 --- a/DysonNetwork.Shared/Data/CloudFileReferenceObject.cs +++ b/DysonNetwork.Shared/Data/CloudFileReferenceObject.cs @@ -1,5 +1,6 @@ using DysonNetwork.Shared.Proto; using Google.Protobuf; +using Newtonsoft.Json; namespace DysonNetwork.Shared.Data; @@ -41,13 +42,13 @@ public class CloudFileReferenceObject : ModelBase, ICloudFile { Id = proto.Id, Name = proto.Name, - FileMeta = System.Text.Json.JsonSerializer.Deserialize>( + FileMeta = JsonConvert.DeserializeObject>( proto.FileMeta.ToStringUtf8(), - GrpcTypeHelper.SystemTextSerializerOptions + GrpcTypeHelper.SerializerSettings ) ?? [], - UserMeta = System.Text.Json.JsonSerializer.Deserialize>( + UserMeta = JsonConvert.DeserializeObject>( proto.UserMeta.ToStringUtf8(), - GrpcTypeHelper.SystemTextSerializerOptions + GrpcTypeHelper.SerializerSettings ) ?? [], MimeType = proto.MimeType, Hash = proto.Hash, @@ -75,12 +76,12 @@ public class CloudFileReferenceObject : ModelBase, ICloudFile // Convert file metadata proto.FileMeta = ByteString.CopyFromUtf8( - System.Text.Json.JsonSerializer.Serialize(FileMeta, GrpcTypeHelper.SystemTextSerializerOptions) + JsonConvert.SerializeObject(FileMeta, GrpcTypeHelper.SerializerSettings) ); // Convert user metadata proto.UserMeta = ByteString.CopyFromUtf8( - System.Text.Json.JsonSerializer.Serialize(UserMeta, GrpcTypeHelper.SystemTextSerializerOptions) + JsonConvert.SerializeObject(UserMeta, GrpcTypeHelper.SerializerSettings) ); return proto; diff --git a/DysonNetwork.Shared/Proto/GrpcTypeHelper.cs b/DysonNetwork.Shared/Proto/GrpcTypeHelper.cs index 85ba823..dc5c324 100644 --- a/DysonNetwork.Shared/Proto/GrpcTypeHelper.cs +++ b/DysonNetwork.Shared/Proto/GrpcTypeHelper.cs @@ -9,13 +9,6 @@ namespace DysonNetwork.Shared.Proto; public abstract class GrpcTypeHelper { - public static readonly JsonSerializerOptions SystemTextSerializerOptions = new() - { - PropertyNamingPolicy = JsonNamingPolicy.SnakeCaseLower, - DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull, - Converters = { new JsonStringEnumConverter() } - }; - public static readonly JsonSerializerSettings SerializerSettings = new() { ContractResolver = new DefaultContractResolver { NamingStrategy = new SnakeCaseNamingStrategy() },