JSONを受け取るのを解析しようとしています。私が受け取るJSONには、空白とアンダースコアが含まれています。これは取り除きたいものです。次の正規表現でC#で一致した値の正規表現を修正する方法
{"No_":"SL00101","Description":"Logies_3","Description_2":"","Customer No_":"1234","Name":"SomeName"}
私は任意のアンダースコアまたは空白を持たないために、変数を変更したい
([a-zA-Z0-9_ ]*\":)
に一致します。 ので: NO_はCustomerNoなりNO_ませ
そして
カスタマーなりません。
私は置換と置換を試しましたが、一致する値を変更する方法が見つかりません。例えば
var newJason = Regex.Replace(json, "(?<variableName>([a-zA-Z0-9_ ]*\":))", "${variableName}".Replace(" ", string.Empty));
と
デシリアライズは、あなたがRegex.Replace' 'を見たことがありますか? –
JSONパーサーを使用して、結果を希望の名前とシリアル化で変換するほうがよいでしょう。そのようにすれば、識別子と価値の違いを理解する必要はありません。 (JSONは正規表現ではないため、正式な表現では正規表現を使用して確実に処理することはできません) – Richard
*なぜ*アンダースコアを置き換えますか?おそらくこれをクラスにマッピングするのに問題がありますか?属性を使用して、[JsonProperty](https://www.newtonsoft.com/json/help/html/M_Newtonsoft_Json_JsonPropertyAttribute__ctor_1.htm)などの代替マッピングを指定することができます。下線を処理するために独自の[命名戦略](https://www.newtonsoft.com/json/help/html/T_Newtonsoft_Json_Serialization_NamingStoregy.htm)を指定することもできます。 –