MVC4:在Json中包含对象名称

时间:2012-04-06 12:40:04

标签: json json.net asp.net-mvc-4 asp.net-web-api

我有一个关于MVC4(beta)问题的问题,我一直在苦苦挣扎一段时间。问题是我想创建一个json,为我的webapi添加了对象名称。必须创建json,因为接收方需要这个。我的.NET / MVC知识有限,请耐心等待。我尝试搜索这个主题,但由于MVC4仍然处于测试阶段,因此很难找到有关此主题的良好信息。

我已在我的解决方案中导入了JSON.NET格式化程序,但这不会添加对象名称

现在在MVC4中创建的json:

[{"ID":36,"Name":"Test3","Description":"Description Test3"},{"ID": 37,"Name": "Test4","Description": "Description Test4"}]

我希望json看起来像这样:

{"Goal":[{"ID":36,"Name":"Test3","Description":"Description Test3"},{"ID": 37,"Name": "Test4","Description": "Description Test4"}]}

所以我喜欢将对象名称(目标)包含在json中。

我正在使用的api控制器中的代码是:

    StoreDBContext db = new StoreDBContext();

    //
    // GET /api/goals
    public IQueryable<Goals> Get()
    {
        return db.Goals;
    }

我假设我需要在某个地方循环添加对象名称,但我不确定如何...希望有人可以帮我解决这个问题!

1 个答案:

答案 0 :(得分:3)

返回这样的内容:

new { Goal = db.Goals().AsEnumerable().ToList() }

您可以使用匿名对象添加不在对象中的属性和内容。

如果您希望JSON.NET正确反序列化,也可以为JSON.NET编写自定义转换器,但如果您不关心输出的反序列化,则上述解决方案将起作用。