3

次のようなjson文字列があります。

{
    "Bar": { 
        "Pressure":42,
        "ServesDrinks":false
    },
    "Baz":[
        {
            "Pressure":9001,
            "ServesDrinks":true
        },
        {
            "Pressure":0,
            "ServesDrinks":false
        }
    ]
}

そして、これを次のようなクラスにデシリアライズしたいと思います。

public class Foo
{
    public Bar Bar { get; set; }

    /// <summary>
    /// Raw serialized (un-de-serialized) json string of the Baz list  
    /// </summary>
    public string Baz { get; set; }
}

基本的に Baz 値を逆シリアル化せず、代わりに生の文字列を保存します。つまり、Bazシリアル化後の文字列値を次のようにします。

"[{\"Pressure\":9001,\"ServesDrinks\":true},{\"Pressure\":0,\"ServesDrinks\":false}]"

私は Json.Net を使用していますが、これを行う方法を理解できていません。Baz理想的なケースでは、生の json を保持する魔法の属性を自分のプロパティに置きたいだけです。

ここで非常によく似た質問を見てきました: 一部のフィールドをそのままにして、JSON.NET で部分的に逆シリアル化します。

JObjectしかし、私はそのアプローチをどのように進めるかを理解していました。

(参考になれば、保持したいデータがリストであることはわかっています)

助けてくれてありがとう!

4

1 に答える 1