有什么区别么?对于调用的人来说。。。
调用方需求...
@吴瑞祥: filter做不到吗???
@顾晓北: 我的问题就是怎么做...
@吴瑞祥: 。。。没这么做过,哈哈。。。拦截请求就是用filter,不过webapi,依照园子的接口的样子,貌似是可以提供XML和json格式,所以返回的也不一定是json,你还是自己试试吧,哈哈
@吴瑞祥: 我觉得是不是调用方来处理这件事情比较容易???
你的json应试对应一个model吧,把这个model的所有string类型的值初始化的时候置为"",然后有值的给值 ,没值的还保持"",就可以了。其实你这个需求本应该不存在的,""和null本身是两个东西,你那边明明是null,即又给人家"",这个本身就不是系统层面的问题,而是业务层面的。
是啊.调用方有这需求你有什么法子.返回值实体太多.想找一个aop的法子.
@吴瑞祥: 少年,你这样会出事的~相当于你给出的数据并不是真正的数据,你确定?
@ensleep: 去扣mvc的代码了
@吴瑞祥: 额……WEBAPI2用的是newtonsoft序列化的,你在global文件里面可以对它进行设置 ,你继承JsonConverter实现一个新的Converter,重写里面的void
WriteJson(JsonWriter writer,
object
value, JsonSerializer serializer)
方法,value就是对象,你反射出来它的所有字符串类型的属性,然后判断是否为null,如果是,则改为""。然后把这个新的Converter在global里面通过设置配给newtonsoft。
涉及东西太多了,不过,根据关键字,网上你都能找到方法的,我不在公司,没有环境帮你写——
@ensleep: 回复错了.不好意思.
json.net的配置我试过了.重写Converter也试过了了..他把null单独处理了.不会进新建的Converter...可坑爹了.
@吴瑞祥: 假如那种方式你试过了有问题,我没有办法帮你调,你可以试一下实现一个IHttpModule,通过Response的Context-Type来判断是不是Json,如果是,则进行一些操作,这个就很麻烦了,因为这时候已经是字符串了,难道你要把它读出来反序列化成类,修改完成后,再序列化回去?这个当数据很大的时候,一次请求估计要花近双倍的时间。另一种方式则是直接用正则对字符串进行替换,不过,误伤的话就蛋疼了。
还是aop吧,如果需要,我可以尝试写下