如何在从Web方法发出之前操纵json字符串?

时间:2013-06-04 17:36:44

标签: c# .net

我有一个像下面这样的网络方法。 MyClass在代理类中定义,因为它来自另一个外部Web服务。

[WebMethod]
     [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
     public MyClass GetCustomer() 
     {
       MyClass myClass = new MyClass();
       (populate myClass from another web service)

       return myClass;
     }

但是我不希望MyClass中的所有属性都返回到浏览器。如何排除某些属性?我试图最小化json有效负载,并让它只包含浏览器所需的数据。我不想定义另一个极简主义类并将其从MyClass复制到它。

1 个答案:

答案 0 :(得分:2)

使用ScriptIgnoreAttribute装饰你不想用它序列化的任何属性。

using System;
using System.Web.Script.Serialization;

public class Group
{
    // The JavaScriptSerializer ignores this field.
    [ScriptIgnore]
    public string Comment;

    // The JavaScriptSerializer serializes this field. 
    public string GroupName;
}

您可以尝试ScriptIgnoreAttribute

希望有所帮助

已编辑 -

你可以做这样的事情

[WebMethod]

public MyClass GetCustomer() {
    MyClass myClass = new MyClass() { key = "value", ... };
    return new filteredClass() {filterKey = myClass.value};
}