将数据类型自定义为JSON
本文关键字:JSON 自定义 数据类型 | 更新日期: 2023-09-27 18:22:08
我有自定义数据类型类,我希望.NET将其转换为JSON(稍后也转换回CustomDataType)。
我知道,没有任何特殊定义的类将被转换为对象,只需序列化所有公共属性。但这不是我需要的。
让我们假设我有一个类
public class MyString : System.Object {
private string myString;
public MyString(string str) {
this.myString = str;
}
public override bool Equals(System.Object obj)
public override int GetHashCode()
public string ToString() {
return "!!!"+myString+"!!!";
}
}
现在,如果我在ApiController 中使用这种类型
public class MyItem {
public MyString someStr;
}
public class MyApiController : ApiController {
[HttpGet]
public MyItem MyApi() {
MyItem item = new MyItem();
item.someStr = new MyString("I have a dream");
return item;
}
}
我得到
{"someStr":{}}
但是我可能想要
{"someStr":"!!!I have a dream!!!"}
或
{"someStr":{"words":4,"chars":11,"length":14}}
而不实际将任何属性公开。
我该如何做到这一点?
WebApi正在使用Json序列化程序来获取结果,而您希望它在上面执行ToString()
。
在序列化对象时,我个人并没有处理过很多私有变量(或属性),然而,它这样做并不让我感到惊讶。
为了获得所需的结果,您需要公开一个返回!!!<whatever text>!!!
的属性。