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