我想通過使用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 { 誤差= 0, 關= 1, 對象= 2, 陣列= 3, 構造= 4, 屬性= 5, 開始= 6 } '在我的情況下,Writer.WriteState的值是WriteState.Array,但問題是我無法設置Writer.WriteState的值來返回對象。 –