ASP.NET Web API を使用して Dictionary を JSON 配列にシリアライズしたいと考えています。現在の出力を説明するために、次のセットアップがあります。
Dictionary<int, TestClass> dict = new Dictionary<int, TestClass>();
dict.Add(3, new TestClass(3, "test3"));
dict.Add(4, new TestClass(4, "test4"));
TestClass は次のように定義されます。
public class TestClass
{
public int Id { get; set; }
public string Name { get; set; }
public TestClass(int id, string name)
{
this.Id = id;
this.Name = name;
}
}
JSON にシリアル化すると、次の出力が得られます。
{"3":{"id":3,"name":"test3"},"4":{"id":3,"name":"test4"}}
残念ながら、これはオブジェクトであり、配列ではありません。私がやろうとしていることを何とか達成することは可能ですか?ディクショナリである必要はありませんが、TestClass の ID を配列のキーにする必要があります。
次のリストでは、配列に正しくシリアル化されていますが、正しいキーではありません。
List<TestClass> list= new List<TestClass>();
list.Add(new TestClass(3, "test3"));
list.Add(new TestClass(4, "test4"));
JSON にシリアル化:
[{"id":3,"name":"test3"},{"id":4,"name":"test4"}]