5

SQL クエリの結果である JSON オブジェクトの配列を返す必要があります。SQL クエリは何でもかまいませんので、プロパティ名と値をコードでその場で作成する必要があります。

たとえば、「従業員から first_name、last_name を選択」すると、次のように返されます。

{ "data": 
   [{
        "first_name": "dave",
        "last_name": "thielen"
    },
    {
        "first_name": "john",
        "last_name": "smith"
    }]
}

しかし、次のクエリは、「注文からアイテム、価格、税金、発送日を選択し、返品したい:

{ "data": 
   [{
        "item": "HD TV",
        "price": "598.95"
        "tax": "59.89"
        "ship_date": "2013-08-26"
    },
    {
        "item": "Cables",
        "price": "54.67"
        "tax": "5.47"
        "ship_date": "2013-08-26"
    }]
}

これを C# で構築してから JSON に変換するにはどうすればよいですか?

ありがとう - デイブ

4

2 に答える 2

8

匿名型を使用する、exの場合(Json.Netを使用)、

var json = JsonConvert.SerializeObject(
    new { 
        data = new[]{ 
            new{name="a",surname="b"},
            new{name="c",surname="d"},
        } 
    }
    );

与えるだろう

{"data":[{"name":"a","surname":"b"},{"name":"c","surname":"d"}]}

編集

「a」が必要です:「b」

var json = JsonConvert.SerializeObject(
        new Dictionary<string, string>() {
            { "a","b" }
        }
    );

出力:{"a":"b"}

EDIT2

そして、面白いもの

var dict = new Dictionary<string, string>() {
    { "a","b" },
    { "c","d" }
};

var json = JsonConvert.SerializeObject(
        new { data = dict.Select(x => new[]{x}.ToDictionary(kv => kv.Key, kv => kv.Value)) }
    );

出力: {"data":[{"a":"b"},{"c":"d"}]}

于 2013-08-26T20:52:35.123 に答える