0

私は以前にこの質問をしました。Newtonsoft を使用したソリューションは、Web ホスティング サーバーに Web サイトを展開するまでうまく機能しまし。したがって、System.Web*.dll などを扱う必要がなく、簡単に Web サイトを展開できるように、いくつかのライブラリを使用する予定です。

or anyを使用して同じjson出力を解析するのを手伝ってもらえますか? どうもありがとう。System.Web.Script.SerializationSystem library

4

1 に答える 1

0

投稿した文字列が破損しているため、実際のjson文字列が有効であることを願っていますが、Json.Netはそれを許容します。

唯一のトリックは、この面白い型に逆シリアル化することですList<Dictionary<string,object>>

これは、修正されたjsonの例です(末尾,のsを削除しました)

string json = @"[ { ""ew"" : ""bharat"", ""hws"" : [ ""\u092D\u093E\u0930\u0924"",""\u092D\u0930\u0924"",""\u092D\u0930\u093E\u0924"",""\u092D\u093E\u0930\u093E\u0924"",""\u092C\u0939\u0930\u0924"" ] }, { ""ew"" : ""india"", ""hws"" : [ ""\u0907\u0902\u0921\u093F\u092F\u093E"",""\u0907\u0928\u094D\u0921\u093F\u092F\u093E"",""\u0907\u0923\u094D\u0921\u093F\u092F\u093E"",""\u0908\u0928\u094D\u0921\u093F\u092F\u093E"",""\u0907\u0928\u0921\u093F\u092F\u093E"" ] } ]";
var list = new JavaScriptSerializer().Deserialize<List<Dictionary<string,object>>>(json);

foreach (var dict in list)
{
    var ew  = (string)dict["ew"];
    var firstValOfHws = ((ArrayList)dict["hws"])[0];
}

- 編集 -

OK、これでうまくいくはずです

var serializer = new DataContractJsonSerializer(typeof(List<Result>));
var result = (List<Result>)serializer.ReadObject(new MemoryStream(Encoding.UTF8.GetBytes(json)));

public class Result
{
    public string ew;
    public List<string> hws;
}
于 2012-08-23T16:38:19.123 に答える