1

asp.net MVC コントローラーを作成します

アクションへの応答として JSON をクライアントに送信します。

{ A : "bla", B: "bla2"}

その値の存在に基づいてフィールド B を暫定的にするにはどうすればよいですか

意味: のようなサーバー オブジェクト

{ A : "bla", B:  null}

として送信されます

{ A : "bla"}
4

1 に答える 1

1

このリンクは、 http://ftp.java2s.com/Code/CSharp/Network/RemovesJsonnullobjectsfromtheserializedstringandreturnanewstringExtentionMethod.htmに役立つ可能性があります

基本的に、c#オブジェクトをjsonにシリアル化してから、正規表現を使用してnull値を持つすべてのプロパティを検索し、それらを削除できます。

編集:

あなたはそのように文字列に拡張メソッドを持つことができます

public static string RemoveJsonNulls(this string str)
    {
        if (!str.IsEmptyOrNull())
        {
            Regex regex = new Regex(UtilityRegExp.JsonNullRegEx);
            string data = regex.Replace(str, string.Empty);
            regex = new Regex(UtilityRegExp.JsonNullArrayRegEx);
            return regex.Replace(data, "[]");
        }
        return null;
    }

public static string JsonNullRegEx = "[\"][a-zA-Z0-9_]*[\"]:null[ ]*[,]?";

public static string JsonNullArrayRegEx = "\\[( *null *,? *)*]";
于 2012-11-14T10:28:06.140 に答える