2016-07-22 57 views
0

我有一個名爲order的TypeScript類。通用結構如下:如何將打字稿類轉換爲包含字符串的JSON?

export class Order { 
    orderId : number= ""; 
    email : string = ""; 
    storeId : string = ""; 
    date : string = ""; 
    billing_address : Object = {}; 
    systemId : string = ""; 
    shipments : Object = {}; 
} 

我想辦法給這個類轉換成JSON結構用「命令」鍵,是Order類的字段中的值。因此,它可以是這樣的:

{ 
    "order":{ 
    "orderId":1232332, 
    "date": "06/02/2016, 
    etc.... 
    } 
} 

做一個簡單的測試,而寫了這個問題之後,我可以簡單地做let order_json = {"order": order};再後來叫JSON.stringify(order_json)到通過HTTP連接發送?我的理解是JSON結構只是一個特定格式的Javascript對象。它是否正確?

+0

「可我壓根讓order_json = {」 序「: order};然後再調用JSON.stringify(order_json)通過http連接發送它?「。你試過了嗎? –

+0

我能夠得到第一部分的工作。我沒有在Angular中設置POST,因此無法測試stringify功能(儘管它在控制檯中看起來很好),但創建似乎很有用。我期待這個方法出現問題,因爲它看起來太「簡單」了? –

+0

做類 - > JSON很簡單,但是你不能自動將JSON反序列化爲特定的案例類。這是類吸取的許多原因之一:p您必須自己編寫一個反序列化器:MyClass.fromJson – AlexG

回答

1

您不需要將其字符串化,通過HTTP連接發送它。在大多數情況下(取決於您使用的框架),如果響應標頭爲application/json,並且您只傳遞一個普通的舊JavaScript對象,則所使用的任何實現通常都會爲您處理編碼(這是除非您正在處理一個非常低級的界面,而這看起來並不像你)。

就做這樣的事情:

let order_json = { order: order }; 

WhateverHTTPLibraryYoureUsing.send(order_json); 

你提到的評論角度,這樣看起來是這樣的:

$http.post(yourEndpoint, { order: order }); 

// or $http.post(yourEndpoint, { order }); if using ecmascript6 
相關問題