🐛 Trying to fix cloud file meta serialization issue

This commit is contained in:
2025-07-23 12:43:20 +08:00
parent be589aed1d
commit c316a099f8
3 changed files with 9 additions and 15 deletions

View File

@@ -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)
)
};

View File

@@ -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<Dictionary<string, object?>>(
FileMeta = JsonConvert.DeserializeObject<Dictionary<string, object?>>(
proto.FileMeta.ToStringUtf8(),
GrpcTypeHelper.SystemTextSerializerOptions
GrpcTypeHelper.SerializerSettings
) ?? [],
UserMeta = System.Text.Json.JsonSerializer.Deserialize<Dictionary<string, object?>>(
UserMeta = JsonConvert.DeserializeObject<Dictionary<string, object?>>(
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;

View File

@@ -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() },