从 JSON.Net 文档中学习停滞不前。有人可以提供 MISSING GetPosts() 方法吗?

时间:2021-07-28 16:47:46

标签: c# json.net

https://www.newtonsoft.com/json/help/html/CreateJsonDeclaratively.htmhttps://www.newtonsoft.com/json/help/html/CreatingLINQtoJSON.htm 网页上都有调用此方法的示例:

List<Post> posts = GetPosts();

是的,像 JSON 这样的工具在组织和查询大量文本信息方面做得非常出色。但是,作为初学者,需要非常仔细地掌握细节。用脚射击自己太容易了。因此,缺少示例方法调用特别痛苦。

任何人都可以在这里回复一个合适的 GetPosts() 的 C# 实现吗?

2 个答案:

答案 0 :(得分:0)

在这种情况下,GetPosts() 在这里做什么是无关紧要的。第一个页面定义了一个 Post 对象:

public class Post
{
    public string Title { get; set; }
    public string Description { get; set; }
    public string Link { get; set; }
    public IList<string> Categories { get; set; }
}

GetPost() 只是以上述格式从数据库返回数据。 JSON 代码显示了如何将此 Post 对象映射到所需的 JSON 格式。因此,无论该方法是从数据库返回数据还是硬编码,在涉及如何构建 JSON 本身时,代码都是相同的。

举个例子,你可以这样做:

private List<Post> GetPosts()
{
   var posts = new List<Post>();
   posts.Add(new Post { Title = "X", Description = "Y", Link = "Z", Categories = new List<string> { "A", "B", "C" });
   return posts;
}

答案 1 :(得分:0)

多亏了你,Daniel,我能够对要编译的 List 帖子进行对象初始化。然后,反过来,查询和调试器检查也起作用了。再一次,我是一个绅士程序员。

就在 19 行 from-in-select LINQ 查询的中间是这个无辜的子句

from p in posts

从您的回复中,我现在了解到 from-in 查询绝对需要一个对象初始化的 List 或 Array。没有它,它不会是一个查询。它就像“来自 t in tayble”,在 T-SQL 中,tayble 由 INSERT 命令初始化。两个查询部分是不可分割的:1) 一个列表/数组/表和 2) 使用 INSERT 或对象初始化对其进行初始化。没有互联网文件告诉我;没有 2 个部分,它将无法编译或工作;但是,你,丹尼尔确实告诉了我。

还记得那些曾经说过“没有坏问题”的大学教授,但后来他们对省略细节的问题充满敌意。与 Internet 文档相同;它反映了管理层对文档的敌意。凭借漂亮的颜色和格式,此类文档似乎非常畅销。尽管如此,它不会起作用。碎片丢失。它不会编译。

这里是工作岗位 List 的对象初始化。

        List<Post> posts = new List<Post>
{
new Post  { Title = "Json.NET 1.3 + New license + Now on CodePlex",
             Description = "Announcing the release of Json.NET 1.3, the MIT license and being available on CodePlex",
             Link = "http://james.newtonking.com/projects/json-net.aspx",
                          Categories = new List<string> { "Json.NET", "CodePlex" }
      },

new Post  {
        Title = "LINQ to JSON beta",
        Description = "Announcing LINQ to JSON",
        Link = "http://james.newtonking.com/projects/json-net.aspx",
        Categories = new List<string> { "Json.NET", "LINQ" }
        }
};