NameValueCollection
できればサードパーティのパーサーを使用せずに、JSON の文字列を C# に簡単に変換するにはどうすればよいでしょうか?
19433 次
3 に答える
10
JSON の逆シリアル化にまだ JSON.NET を推奨している理由がよくわかりません。JSON を C# に逆シリアル化する方法に関するブログ投稿を書きました。
要するに、次のようになります。
using System.Web.Script.Serialization;
var jss = new JavaScriptSerializer();
var dict = jss.Deserialize<Dictionary<string, string>>(jsonText);
NameValueCollection nvc = null;
if (dict != null) {
nvc = new NameValueCollection(dict.Count);
foreach (var k in dict) {
nvc.Add(k.Key, k.Value);
}
}
}
var json = jss.Serialize(dict);
Console.WriteLine(json);
System.Web.Extensions.dll への参照を必ず追加してください。
注:
通常は にデシリアライズするdynamic
ので、それでNameValueCollection
うまくいくと思います。ただし、実際にそうであるかどうかは確認していません。
于 2012-07-09T16:18:02.497 に答える
4
編集
サードパーティ開発のない純粋な.netソリューションは次のようになります:JavaScriptSerializer –JSONシリアル化および逆シリアル化への辞書
Json.NETを利用する
string jsonstring = @"{""keyabc"":""valueabc"",""keyxyz"":""valuexyz""}";
Dictionary<string, string> values =
JsonConvert.DeserializeObject<Dictionary<string, string>>(jsonstring);
@jonの回答が同じことを示唆していることを確認してください:NewtonsoftJSONライブラリを使用した.NetLinq to JSON
于 2012-07-09T16:08:50.240 に答える