Я хочу изменить тип свойства из массива в объект с помощью JsonConverter
. Например, у меня есть свойство [{"Name":"aaa"}]
. После сериализации я хочу получить такой результат: {"__po":"Add",Objects:[{"Name":"aaa"}]}
.Как преобразовать массив в объект в JsonConverter
Так что я создал класс для настройки моего сериалайзера:
public class Serializer : ISerializer
{
public JsonSerializerSettings SerializerSettings { get; set; }
public Serializer()
{
SerializerSettings = new JsonSerializerSettings();
SerializerSettings.Converters.Add(new ParseArrayToObjectJsonConverter());
}
public class ParseArrayToObjectJsonConverter : JsonConverter
{
public override bool CanConvert(Type objectType)
{
if (objectType.GetTypeInfo().Name.EndsWith("Array"))
{
return true;
}
return false;
}
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
}
}
}
Я вижу, что JsonWriter
обладает этим свойством public WriteState WriteState { get; }
, который может вернуть перечисление как это: public enum WriteState { Error = 0, Closed = 1, Object = 2, Array = 3, Constructor = 4, Property = 5, Start = 6 }
.
В моем методе WriteJson
, тип writer.WriteState
является WriteState.Array
, но проблема в том, что я не могу установить значение WriteState
для возвращения объекта. Есть ли у вас какие-либо другие решения для решения этой проблемы?
JsonWriter имеет это свойство public WriteState WriteState {get; }, Который может вернуть перечисление как этот «перечислений WriteState общественного { Error = 0, Closed = 1, Object = 2, Array = 3, Constructor = 4, Property = 5, Start = 6 } 'в моем случае значение Writer.WriteState является WriteState.Array, но проблема я не могу установить значение Writer.WriteState для возврата объекта. –