asp.net web api返回带有动态键的json对象数组

时间:2016-07-13 13:44:47

标签: asp.net asp.net-web-api asp.net-web-api2

如何使用动态键返回json对象数组,例如:

[
    "dynamic prop 1": {
          "title": "abc",
          "sku": "123"
        },
    "dynamic prop 2": {
          "title": "xyz",
          "sku": "789"
        }
]

默认格式为:

[
        {
          "title": "abc",
          "sku": "123"
        },
        {
          "title": "xyz",
          "sku": "789"
        }
]

4 个答案:

答案 0 :(得分:1)

使用JObject解决了问题:

JObject jProducts= new JObject();

foreach (var p in products)
{
    var o = new JObject()
    {
        { "title",  p.Title},
        { "sku", p.Sku }
    };

    jProducts.Add(p.Name, o);
}

return Request.CreateResponse(HttpStatusCode.OK, jProducts);

感谢william-xifaras

答案 1 :(得分:0)

使用返回对象列表。 哪个对象(比如 MyObj )具有属性:title和sku。 那么你将得到理想的输出。 您要返回的数据如下所示:

List<MyObj> data=new List<MyObj>();
// add your objects.
// return this list object.

你会得到你想要的格式的输出。

答案 2 :(得分:0)

然后返回动态对象。

return new{ property1Name=MyObj1,property2Name=MyObj2}

我希望这对你有用。

否则请参考以下链接从json生成c#类并在ur解决方案中创建所需的模型。 https://www.google.co.in/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwjEl7efl_XNAhWJs48KHYDHAUsQFggfMAA&url=http%3A%2F%2Fjson2csharp.com%2F&usg=AFQjCNEbR-mTF-PU4BYWff3opCDcJOl0ag&bvm=bv.127178174,d.c2I

答案 3 :(得分:0)

然后你推荐

Tuple data type and learn about it.

它可能会帮助你。