基本的に、そのプロパティ/キーの1つに空の文字列を含むJavaScriptオブジェクト(結合配列)であるJSON文字列が、組み込みの.NETシリアライザで例外をスローすることがわかりました。これは.NETのJavaScriptがデシリアライズするバグのようです...それは?
たとえば、このコード:
string json = "{ \"\" : [\"b\"] }";
JavaScriptSerializer js = new JavaScriptSerializer();
var map = js.Deserialize<Dictionary<string, List<string>>>(json);
は多分正しいJSONは、プロパティ名の空の文字列を許可していないことを示唆し、ArgumentExceptionがスローされます。 Backaus Naur Form Diagram/Syntax DiagramのCrockford’sサイトを見るだけで、空の文字列が許可されていることがわかります。
object => '{' string ':' value '}'
string => ""
=> " chars "
私はコードをJSON.NETに数週間前に切り替えて、それがはるかに優れていることを発見しました。 –