我第一次使用 Web API 4 并准备连接到 MongoDb 的连接。我已经定义了一些简单的对象来表示模型,但是当我尝试从我的 API 的 GET 请求中返回它们的集合时,结果 JSON 对象中只包含一个属性。
public class Topic : Entity
{
public string Name { get; set; }
public List<Topic> Parents { get; set; }
public List<Topic> Children { get; set; }
public List<ContentNode> ContentNodes { get; set; }
}
public class ContentNode
{
public enum ContentNodeType { VIDEO, TEXT, AUDIO };
public ContentNodeType ContentType { get; set; }
public string Url { get; set; }
public List<int> Scores { get; set; }
public List<Link> Links { get; set; }
public List<string> Comments { get; set; }
}
public string Get()
{
List<Topic> topics = new List<Topic>();
var programming = new Topic()
{
Id = "1",
Name = "Programming"
};
var inheritanceVideo = new ContentNode()
{
ContentType = ContentNode.ContentNodeType.VIDEO,
Url = "http://youtube.com",
Scores = new List<int>() {
4, 4, 5
},
Comments = new List<string>() {
"Great video about inheritance!"
}
};
var oop = new Topic()
{
Id = "2",
Name = "Object Oriented Programming",
ContentNodes = new List<ContentNode>() {
inheritanceVideo
}
};
programming.Children.Add(oop);
topics.Add(programming);
string test = JsonConvert.SerializeObject(topics);
return test;
}
我在这里使用 JSON.Net 库来序列化对象,但我之前使用了默认的 JSON 序列化程序并使用了 GET return IEnumerable<Topic>
。在这两种情况下,返回的 JSON 都很简单:
"[{\"Id\":\"1\"}]"
对 XML 的浏览器请求工作得很好。根据 JSON.Net 的文档,将这些类序列化为 JSON 似乎没有问题。关于为什么这不起作用的任何想法?我似乎不需要为每个成员应用显式属性。