1. ホーム
  2. c#

[解決済み] JsonConvert.DeserializeObject で null/empty 値を処理する方法

2023-06-06 19:01:47

質問

次のようなコードがあります。

return (DataTable)JsonConvert.DeserializeObject(_data, (typeof(DataTable)));

そして、試しに

var jsonSettings = new JsonSerializerSettings
{
    NullValueHandling = NullValueHandling.Ignore
};

return (DataTable)JsonConvert.DeserializeObject<DataTable>(_data, jsonSettings);

戻り行がエラーを投げています。

{"Error converting value \" to type 'System.Double'."}.

オンラインでは、多くのソリューションがカスタム Class を作成することを提案する多くのソリューションがありますが、これは私のために動作しません。 私は、jsonが特定のフォーマットであることを期待することはできません。 私は、カラム数、カラムタイプ、またはカラム名を制御することはできません。

どのように解決するのですか?

設定を JsonConvert.DeserializeObject に設定を与えて、この場合 null 値をどう扱うかなどを指示することができます。

var settings = new JsonSerializerSettings
                    {
                        NullValueHandling = NullValueHandling.Ignore,
                        MissingMemberHandling = MissingMemberHandling.Ignore
                    };
var jsonModel = JsonConvert.DeserializeObject<Customer>(jsonString, settings);