JsonConverter
を使用して、配列からオブジェクトにプロパティの型を変更したいとします。たとえば、私はこのようなプロパティを持っています[{"Name":"aaa"}]
。シリアル化した後、私はこのような結果を持っています{"__po":"Add",Objects:[{"Name":"aaa"}]}
。 配列をJsonConverterのオブジェクトに変換する方法
public enum WriteState { Error = 0, Closed = 1, Object = 2, Array = 3, Constructor = 4, Property = 5, Start = 6 }
:
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; }
を持っていることがわかります。
私のWriteJson
メソッドでは、のタイプはWriteState.Array
ですが、オブジェクトを返すためにWriteState
という値を設定できないという問題があります。この問題を処理するための他の解決策はありますか?
JsonWriterがこのプロパティを持っています。public WriteState WriteState {get; }誰がこの「パブリック列挙WriteStateような列挙を返すことができ { エラー= 0、 クローズ= 1、 オブジェクト= 2、 アレイ= 3、 コンストラクタ= 4、 施設= 5、 スタート= 6 } '私の場合、Writer.WriteStateの値はWriteState.Arrayですが、オブジェクトを返すためにWriter.WriteStateの値を設定できないという問題があります。 –