Web-API JSON父对象名称

时间:2013-06-18 11:59:28

标签: json backbone.js asp.net-web-api

创建了一个输出json的web api,试图将它与backbone.js pagination插件一起使用,将结果输出到backbone.js infinite-paging插件

这是我输出的json

 [{"id":1,"title":"test1""desc":"book1"},
    {"id":2,"title":"test2","desc":"book2"},
    {"id":3,"title":"test3", "desc":"book3"},
    {"id":4,"title":"test4","desc":"book4"},
    {"id":5,"title":"test5","desc":"book5"},
    {"id":6,"title":"test6","desc":"book6"}]

但我需要将对象的名称包含为backbone.js paginator需要返回响应对象。我认为我几乎在那里,但似乎不能让它显示或计算我如何添加对象名称

{"object name:"[{"id":1,"title":"test1","desc":"book1"},   {"id":2,"title":"test2","desc":"book2"},
{"id":3,"title":"test3","desc":"book3"},
{"id":4,"title":"test4","desc":"book4"},
{"id":5,"title":"test5","desc":"book5"},
{"id":6,"title":"test6","desc":"book6"}]}

我的.net api web api看起来像这样

namespace newslist
{
public class NewsController : ApiController
{
    List<News> Articles = new List<News>{
        new  News { id=1, title="test1", desc ="test1"},
        new  News { id=2, title="test2", desc ="test2"},
        new  News { id=3, title="test3", desc ="test3"},
        new  News { id=4, title="test4", desc ="test4"},
        new  News { id=5, title="test5", desc ="test5"},
        new  News { id=6, title="test6", desc ="test6"}

    };

    public List<News> GetAllLatestNews()
    {
        return Articles;
    }      

    public News GetNewsById(int id)
    {
        var News = Articles.FirstOrDefault((p) => p.id == id);
        if (News == null)
        {
            throw new HttpResponseException(HttpStatusCode.NotFound);
        }

        return News;
    }

    public IEnumerable<News> GetNewsByCategory(string desc)
     {
        return Articles.Where(
            (p) => string.Equals(p.desc, desc,
                StringComparison.OrdinalIgnoreCase));
      }
   }
}

类文件:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

  namespace newslist
  {
  public class News
  {
    public int id { get; set; }
    public string title { get; set; }
    public string desc { get; set; }

   }
}

1 个答案:

答案 0 :(得分:1)

如果只有JSON可以,那么这应该可以满足您的需求。

public class NewsController : ApiController
{
    List<News> Articles = new List<News>{
        new  News { id=1, title="test1", desc ="test1"},
        new  News { id=2, title="test2", desc ="test2"},
        new  News { id=3, title="test3", desc ="test3"},
        new  News { id=4, title="test4", desc ="test4"},
        new  News { id=5, title="test5", desc ="test5"},
        new  News { id=6, title="test6", desc ="test6"}

    };

    public HttpResponseMessage GetAllLatestNews()
    {
        return Request.CreateResponse(HttpStatusCode.OK, new { ObjectName = Articles});
    }
}