使用JsonConverter结束实现此操作。我改变为MyObject的样子:
[JsonConverter(typeof(MyObjectConverter))]
public class MyObject
{
public string PropertyOne { get; set; }
public string PropertyTwo { get; set; }
}
然后实施MyObjectConverter:
public class MyObjectConverter : JsonConverter
{
public override object ReadJson (JsonReader reader, Type objectType, Object existingValue, JsonSerializer serializer)
{
int pos = 0;
string[] objectIdParts = new string[2];
while (reader.Read())
{
if (pos < 1)
{
if (reader.TokenType == JsonToken.String)
{
objectIdParts[pos] = reader.Value.ToString();
pos++;
}
}
// read until the end of the JsonReader
}
return new MyObject(objectIdParts);
}
public override void WriteJson (JsonWriter writer, object value, JsonSerializer serializer)
{
throw new NotImplementedException();
}
public override bool CanWrite {
get {
return base.CanWrite;
}
}
public override bool CanRead { get { return true; } }
public override bool CanConvert (Type objectType)
{
return true;
}
}
我不喜欢回答这样的B/C它并不能帮助谁拥有这个通用的问题,谁就会在阅读这个答案的人未来... –
@亨利 - 幸运的是有不止一个答案可供选择;) –