サイズが 2 MB を超える JSON 文字列を変換するときに、PowerShell v3 を使用すると問題が発生します。PowerShell で使用される JSON シリアライザーの既定の制限は 2MB に設定されており、これがエラーを説明しています。
ただし、より小さなセットで ConvertFrom-Json を使用してオブジェクトを逆シリアル化すると (内部コレクションがより小さく、より大きくなるさまざまなデータ オブジェクトを取得しましたが、それらは同じオブジェクトです)、簡単にアクセスできるすべてのプロパティを備えた非常に優れたオブジェクトが返されます。
シリアライザーの制限を克服するために、データを手動で逆シリアル化しようとしました。
$jsser = New-Object System.Web.Script.Serialization.JavaScriptSerializer
$jsser.MaxJsonLength = $jsser.MaxJsonLength * 10
$jsser.RecursionLimit = 99
$outObject = $jsser.DeserializeObject($json)
内部コレクションが逆シリアル化されていないようで、プロパティを実行しようとすると、空の結果が返されます。
私の質問:
仮定は
ConvertFrom-Json
、いくつかの追加の魔法を行うか、シリアル化の前に何らかの方法でオブジェクトのテンプレートを作成します。それを複製する方法はありますか?私が得るオブジェクトは常に
PSCustomObject
です。セットアップしたいオブジェクトを取得した場合、ConvertFrom-Json
それをJsonSerializerのオブジェクトタイプとして使用する方法はありますか?