豚吐露@wiki
任意の形式に加工したJSONを返したい
最終更新:
Bot(ページ名リンク)
-
view
任意の形式に加工したJSONを返したい
WebAPI2では、返す型をDictionary、Listにすると、勝手にJSONやXMLにしてくれる。
なので、こんな風に適当にDictionary、List、Arrayを組み合わせてobjectを作っても...
- public class HogeController : ApiController
- {
- public List<IDictionary<string, object>> Get()
- {
-
-
- child.Add("name", "ElementX");
-
- for (int i = 0; i < 10; i++)
- {
- hList.Add(i);
- }
- child["データ"] = hList;
-
- json[0] = child;
-
- grandchild1["p" + 1.ToString()] = "4";
- grandchild1["p" + 2.ToString()] = "9";
- grandchild1["p" + 3.ToString()] = "16";
- grandchild1["p" + 4.ToString()] = "25";
- grandchild1["p" + 5.ToString()] = "36";
- child["XX"] = grandchild1;
-
-
-
- grandchild2.Add("あいうえお");
- grandchild2.Add("ABCDEFG");
- grandchild2.Add("АБВГДЕЁЖ");
- grandchild2.Add("ⅠⅡⅢⅣⅤⅥⅦ");
- grandchild2.Add("壱百弐拾参萬四阡五百六拾七");
-
- child2.Add("ElementY", grandchild2);
-
- json[1] = child2;
-
- return json.ToList();
- }
- }
ちゃんとJSON形式で返してくれる。
中に突っ込まれてるArrayは、そのままでもちゃんとJSON化してくれるみたい。
中に突っ込まれてるArrayは、そのままでもちゃんとJSON化してくれるみたい。
- [
- {
- "XX": {
- "p1": "4",
- "p2": "9",
- "p3": "16",
- "p4": "25",
- "p5": "36"
- },
- "name": "ElementX",
- "データ": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
- },
- {
- "ElementY": [
- "あいうえお",
- "ABCDEFG",
- "АБВГДЕЁЖ",
- "ⅠⅡⅢⅣⅤⅥⅦ",
- "壱百弐拾参萬四阡五百六拾七"
- ],
- "data": [2, 3, 6, 7, 11, 13, 17, 19, 23, 29, 31, 37]
- }
- ]
cf.) 参考までに、return前のjson objectの中身。

更新日: 2014年11月27日 (木) 13時53分28秒
添付ファイル