我正在使用C#开发一个MVC项目,并且有一个返回JsonResult模型的控制器方法。该模型包含一个名为Value的属性。
根据某些条件,Value可能是字符串值,例如“C”或“N”。但在其他条件下它可能.5。
序列化模型时,是否可以检查属性是否为数字以将其序列化为数字(无引号)?如果它不是数字,那么把它变成一个字符串(引号)?
例如,我有以下课程:
public class Answer
{
public int Id{get;set;}
public string Value { get; set; }
}
假设我将这些列表返回:我希望得到类似下面的内容:(注意第一个答案,“值”没有引用;但是,第二个和第三个答案都被引用。
{
"answers": [
{
"id": 1,
"value": .5 <- No quote here.
},
{
"id": 1,
"value": "C" <- Quote here
},
{
"id": 1,
"value": "N" <- Quote here
}
]
}
当它回到服务器端(反序列化)时,我只是喜欢字符串表示。
答案 0 :(得分:1)
我认为您必须实现自定义JSON转换器。请参阅以下链接:
http://james.newtonking.com/json/help/index.html?topic=html/CustomJsonConverter.htm