繁体   English   中英

复杂的JSON结构

[英]Complex JSON Structure

我要处理前端开发(AngularJS),而不是从后端提取数据(该数据尚不完整,但会将所有内容呈现为JSON),而是使用硬编码JSON。

但是,我对此并不陌生,似乎找不到任何有关复杂JSON结构的信息。 从根本上讲,我的Web应用程序包含用户及其创建的内容。 因此,在我看来,将有两个数据库,但是我不确定是否正确地使用它。

  1. 用户-用户名,位置,创建的内容,评论等。

     "user": [ { "userID": "12", "userUserName": "My Username", "userRealName": "My Real Name", "mainInterests": [ { "interest": "Guitar" }, { "interest": "Web Design" }, { "interest": "Hiking" } ], "userAbout": "All about me...", "userComments": [ { "comment": "this is a comment", "contentID" : "12" }, { "comment": "this is another comment", "contentID" : "123" } ], } ] 
  2. 创建的内容-标题,描述,用户名,评论等。

     "mainItem": [ { "mainID": "1", "mainTitle": "Guitar Lessons", "mainCreatorUserName": "My Username", "mainCreatorRealName": "My Real Name", "mainTags": [ { "tag": "Intermediate" }, { "tag": "Acoustic" }, { "tag": "Guitar" } ], "mainAbout": "Learn guitar!", "mainSeries": [ { "videoFile": "file.mov", "thumbnail": "url.jpg", "time": "9:37", "seriesNumber": "1", "title": "Learn Scales" }, { "videoFile": "file.mov", "thumbnail": "url.jpg", "time": "8:12", "seriesNumber": "2", "title": "Learn Chords" } ], "userComments": [ { "comment": "this is a comment", "userID" : "12" }, { "comment": "this is another comment", "userID" : "123" } ] } ] 

除此之外,还有更多的复杂性,但是我只是想了解我是否正在实现这一权利。 也许我什至完全不正确地处理此问题(例如,CRUD与REST?这有关系吗?据我所知,REST意味着上面的每个对象都是具有自己唯一URI的资源?因此,渲染的JSON是否会受到影响?)。 我真的不确定。 但最终,我需要使用JSON结构将数据正确提取到前端。 大概,无论上述结构如何,都将在后端进行镜像和渲染。

编辑*谢谢大家的答复。 我认为我的问题的一部分(我在这里澄清“复杂”的内容)丢失了。 所以我想解释一下。 我猜比JSON本身还多,我的意思是数据的结构。 例如,在我的示例中,我将数据构造为全部位于两个唯一对象(用户和内容)之下。 这个对吗? 还是应该考虑我的数据更加多样化? 例如,从技术上讲,我可以有一个注释数据库(每个注释都是主要对象)。 还是我的数据集中仍然暗示着这一点? 也许我的问题甚至与JSON无关,而不仅仅是以JSON呈现的数据结构。 希望这可以弄清楚我所说的复杂吗?

任何和所有帮助表示赞赏。

我不确定为什么要将似乎是对象的对象放入单项数组(如左方括号所示)。 除此之外,对我来说还不错。 一般来说,单个项目(如“用户”)被构造为一个对象,而多个则是对象的数组。

至于Angular的东西,如果您想直接从JSON文件中提取作为测试,请看这里:

var services = angular.module('app.services', [])

services.factory('User', function($http) {
    var User = function(data) { 
        return data;
    }

    User.findOne = function(id) {
        return $http.get('/test_user.json').then(function(response) { 
            return new User(response.data); 
        });
    };

    return User;
});

我还建议考虑部署部署,以进行开发而无需访问实时数据服务。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM