根据RFC 7159,
"Hello world!"
是有效的JSON。
我如何应将此类字符串化为对象?
成像类似:
[DataContract]
public class StringValueObject {
public string Value { get; set; }
}
StringValueObject result = JsonConvert.DeserializeObject<StringValueObject>(""Hello world!"");
谢谢大家,我找到了:
StringValueObject result = JsonConvert.DeserializeObject<StringValueObject>(""myString"");
现在工作:
[TypeConverter(typeof(StringValueConverter))]
public class StringValueObject {
public string Value { get; set; }
}
public class StringValueConverter : TypeConverter {
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) {
if (sourceType == typeof(string)) {
return true;
}
return base.CanConvertFrom(context, sourceType);
}
public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType) {
if (destinationType == typeof(StringValueObject)) {
return true;
}
return base.CanConvertTo(context, destinationType);
}
public override object ConvertFrom(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) {
if (value is string) {
return new StringValueObject {Value = (string) value};
}
return base.ConvertFrom(context, culture, value);
}
public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destinationType) {
if (destinationType == typeof(string) && value is StringValueObject) {
return ((StringValueObject) value).Value;
}
return base.ConvertTo(context, culture, value, destinationType);
}
}