Angular 2中的嵌套json数据 - 如何过滤?

时间:2017-07-30 18:59:52

标签: javascript json angular service

我是Angular,Js等的新手,并且理解如何使用嵌套数据时遇到问题。例如:

我有四个json文件:

  • 类别
  • 子类
  • 帖子
  • 评论

最好有4个不同的文件,如上面的,或者像这样的文件:

{
"id_category":"1",
"name":"business",
"subcategories":{
    "id":"1",
    "name":"ecommerse",
    "posts": {
        "id": 1,
        "title": "New post"
        "comments": {
            "id": 1,
            "text": "text text text"
     }
  }
}

当然这只是一个例子,但是对于那个例子,我需要通过Id = 1找到评论,以获得有关该评论与哪个帖子相关的信息,哪个子类别和类别。

现在我有四个不同的文件和服务来从json文件中获取数据。我可以通过ID获得具体评论:

getComment(Id: number) {
    return this.comments.find(
        (comment) =>
        comment.id === Id 
    );
}
好的,好的。但是,如果我想获得有关此评论的帖子,子类别和主要类别的信息?我该怎么办?

1 个答案:

答案 0 :(得分:0)

这取决于您的应用程序的具体需求。

有了这个结构:

{
"id_category":"1",
"name":"business",
"subcategories":{
    "id":"1",
    "name":"ecommerse",
    "posts": {
        "id": 1,
        "title": "New post"
        "comments": {
            "id": 1,
            "text": "text text text"
     }
  }
}

您可以迭代类别并显示列表,然后允许用户选择单个category,并将其分配给var currentCategory

然后,您可以迭代currentCategory.subcategories以允许用户选择subcategory并将其分配给var currentSubCategory。您可以继续向下钻取到currentSubCategory.posts,允许用户选择post,将其分配给var currentPost,然后对其进行迭代以显示currentPost.comments

如果您是从数据库中取出以便允许用户深入查看数据以便仅显示,那么这样的事情就可以了。

如果你在JSON文件中维护数据,那么我会看一下像JSON Server https://github.com/typicode/json-server

这样的东西

如果您正在构建更实质的内容并且您有数据库后端,请使用数据库并且不要尝试在JSON中重新创建该功能,使用JSON作为数据的传输,但不要尝试复制前端代码中的整个表或复杂数据结构,只需根据需要获取所需内容,因为这样可以提供更加稳定和可扩展的应用程序,并且还可以使您更轻松地获取和更新数据在可管理的小块中。

要使用JSON模拟数据后端,请考虑使用json-server

https://www.npmjs.com/package/json-server