JSON文字列を逆シリアル化する必要があります。これは極端な例ですが、それは全体のポイントを取得します。.NETでJSONを逆シリアル化することはできません
string fooJson = @"
{
'foo_baz': 123,
foo_bar: 'buuuu',
""Xyz"": ""\/Date(405928800000-0600)\/"" //1982-11-12
}";
JSONは私が変更することはできません。このC#クラスにデシリアライズする必要があります。Foo
のシリアル
public class Foo
{
public string Bar { get; set; }
public int Baz { get; private set; }
public DateTime Xyz { get; set; }
}
は問題ありません。デシリアライズした後、結果は...
Bar
=="buuuu"
Baz
==123
Xyz
==DateTime.MinValue
または初期化されていない
でなければなりません
...しかし、私は問題があります。それが適切に二重引用符で囲まれていないJSONのプロパティと文字列にbalks以外
DataContractJsonSerializer
は、DataContract
とDataMember
Foo
の属性とそのメンバーと一緒に、基本的には完璧です。
JavaScriptSerializer
は、非標準の引用を扱うようだが、私はそれがBar
にBaz
とfoo_bar
にXyz
またはマップfoo_baz
を無視することができません。
これは配布可能なクラスライブラリの一部であるため、できるだけ多くのJSON.NET —などのサードパーティのツール—は使用しないようにしています。しかし、私が必要とすることをするための組み込みの方法がない場合、私はサードパーティのツールの提案に公開しています。
私は明白なことを指摘するのは嫌ですが、これは問題です:「JSONプロパティと文字列が正しく二重引用符で囲まれていないことを除いて」....それはJSONではなく、ほぼ* JSON JSONではなく、適切なJSONの書式設定がなければ、多くのことが起こります。例えばJSON.parse()です。有効なJSONを作成する必要があります。 –
ありがとうございます。上記の最初の文章で述べたように、私は何が私に送られるのかについて何の支配もしていません。 –