Fix some problems with LocalizedString serialization in C#

This commit is contained in:
Wojtek Figat
2021-08-11 14:58:56 +02:00
parent d85c65bfc5
commit 26d37103ba

View File

@@ -244,16 +244,21 @@ namespace FlaxEngine.Json
/// <inheritdoc />
public override void WriteJson(JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer)
{
#if FLAX_EDITOR
bool writeTypename = (serializer.TypeNameHandling & TypeNameHandling.Objects) == TypeNameHandling.Objects;
#else
bool writeTypename = false;
#endif
var str = (LocalizedString)value;
if (string.IsNullOrEmpty(str.Id))
if (string.IsNullOrEmpty(str.Id) && !writeTypename)
{
writer.WriteValue(str.Value);
writer.WriteValue(str.Value ?? string.Empty);
}
else
{
writer.WriteStartObject();
#if FLAX_EDITOR
if ((serializer.TypeNameHandling & TypeNameHandling.Objects) == TypeNameHandling.Objects)
if (writeTypename)
{
writer.WritePropertyName("$type");
writer.WriteValue("FlaxEngine.LocalizedString, FlaxEngine.CSharp");