JavaScript相对较新,所以想知道达到以下要求的最佳方法是什么。 我想创建JSON对象(RPC请求对象),并且需要强制执行一些结构。就我所知,JS是动态语言,因此我可以随时将任何类型添加到对象中。但是,我喜欢定义一个类,我可以填充它来构造JSON请求。用于实施JSON结构的Javascript类
var RecReq = {
ID:{},
HeaderLevel:{},
Content:{} //Content object goes here
},
HeaderLevel = {
HeaderID:{},
Note:{}
},
Content = {
Item: [] //Array of Item goes here
},
Item = {
IDs:[]
};
function ReceiveObj() {
this.RecReq = RecReq,
this.HeaderLevel = HeaderLevel,
this.Content = Content,
this.Item = Item
};
return new ReceiveObj();
我相信很多上面的代码有问题。我不认为该对象是在初始化数组的情况下创建的。 在返回的对象上,我无法执行push()
操作以将内容插入内容。
你会如何处理这个问题。您是否即时创建对象,或者更好地定义强制某种结构的对象。
我不会为JSON DTO创建一个JS类。通常情况下,您将DTO发送到某个Web服务;如果服务是以静态类型语言实现的,那就让它处理类型安全。另一种更适合动态语言的方法是使用单元测试来验证代码生成的对象的结构。 – millimoose
感谢您分享您的经验。我不会创建一个类,但可以即时构建一个对象。我的意图只是向DOCUMENT所有对象“可以”包含,因此它不会在后端引发错误。为了帮助我学习,能否请你建议我应该如何构建DTO(用惯用的JS方式)。它应该全部在一个班级还是我试图做的方式(不同的变量指示班级中的不同字段/类型)。这感觉非常糟糕,所以一个例子会帮助我思考JS方式。再次感谢 – bsr
要记录事情,你可以使用服务器端定义 - 如果端点是使用.NET和WCF实现的,那么这将是数据契约。 (如果服务不是某种公共API,这是一个很好的选择。)否则,您可以查看使用“选项散列”模式的主要Javascript库是如何记录的;通常,这意味着“描述实际用例的大量例子”。所以我会说你只是提供你的服务所期望的JSON的完整例子,然后记录这些属性的目的就不会出错。 – millimoose