投稿

9月, 2013の投稿を表示しています

C#でJSON配列のパースに苦労した話

JSONの記法では、Arrayの中に様々な型を含めることができます。 たとえば、 {"result":["str1", "str2", "str3"], "id":1} {"result":[1, 2, 3, 4], "id":1} {"result":[{"key":"val"}, {"key":"val2"}], "id":1} のような単純な配列形式であれば、 C#では次のような簡単な処理でオブジェクトへとデシリアライズできます。 C# [DataContract] class StringArray { [DataMember] public int id { get; set; } [DataMember] public string[] result { get; set; } } private void deserialize() { var json = "{\"result\":[\"str1\", \"str2\", \"str3\"], \"id\":1}"; var stream = new MemoryStream(Encoding.Unicode.GetBytes(json)); var serializer = new DataContractJsonSerializer(typeof(StringArray)); var obj = (StringArray)serializer.ReadObject(stream); Debug.WriteLine("id: " + obj.id); foreach(var str in obj.result) { Debug.WriteLine("result: "