1

StreamReaderそのストリーム内のすべてのオブジェクトの中間オブジェクトをインスタンス化せずに、JSONから逆シリアル化する必要があります。

  • JSON.NETは次のように呼び出されますJsonConvert.DeserializeObject<T>(string json, JsonConverter[] converters)
    1. を受け入れないStreamReader、および
    2. Newtonsoft.Json.*メモリプロファイラーが示すように、JSON構造体のクラスのセット全体をメモリ内に作成します。JsonConverter_私は実際にこれが当てはまるかどうかはわかりません。
  • JavaScriptSerializerStreamもsをまったく サポートしていないようです。
    1. そして、非難されたnew JsonSerializer().Deserialize(new JsonTextReader(streamReader))

ゼロアプローチで必要なのは、SAXまたはStAXスタイルのJSONパーサーです。

私が理想的に欲しいのは、次のようなAPIです。

object JsonCooler.DeserializeObject<T>(
  StreamReader jsonStream, Converter[] converters)

これは、クラスの新しいインスタンスに直接逆シリアル化され、Tその中間のDOMのようなオブジェクトのすべてをメモリに保持しません。

そのようなデシリアライザーは存在しますか?または、コンセプトレベルで何が欠けていますか?

4

2 に答える 2

0

LitJSONで見つけましたDataReaderが、かなり古いです。より良い答えを受け入れます。

于 2013-02-21T12:51:12.443 に答える