2012-08-13 41 views
1

我的工作是從的ServiceNow數據庫中檢索數據,並將其轉換C#程序將數據轉化成C#.NET對象。我正在使用JSON Web服務以JSON格式返回我的數據。的ServiceNow - JSON Web服務,顯示相關表

我想實現如下:如果在值之間存在關係映射(例如:我有一個名爲Company的表,其中CEO不是TEXT字段,而是sys_id到Employee Table)希望能夠不通過sys_id輸出數據(或者只是通過使用'displayvariable'參數顯示name屬性),而是通過JSON中顯示的對象輸出。

這意味着,一個屬性的值應在JSON對象,而不是隻是一個單一的值。

舉幾個例子:

// I don't want the JSON like this 
{"Company":{"CEO":"b181e841c9212c008aeb36850331fab2"}} 

// Or by displaying the name of the sys_id table 
{"Company":{"CEO":"James Henderson" }} 

// I want the data as follows, so I can have all the data I need inside a single JSON record. 
{"Company":{"CEO":{"name":"James Henderson", "age":34, "sex":"male", "office":"SBN Left Floor 23"}}} 

從閱讀文檔我無法找到,讓我來顯示這樣也不 的信息找到其他替代的JSON Web Service的任何東西。它應該與加入表格和以正確格式顯示它們有關。

回答

2

我一直在使用SNC近三年來,並沒有發現可以自動連接表中的Web服務。你最好的選擇是使用一個可能帶有查詢參數和表參數的腳本Web服務。然後,您可以按照您的看法,將json的結果序列化。

或者,另一選擇是將產生一個新的處理器將遍歷GlideRecord對象。您傳遞給URL的?JSON參數僅僅是一個標誌,可將您的請求傳遞給特定的處理器。不幸的是,我認爲OOB是一個Java類而不是JS腳本,因此您需要編寫一個腳本,就像我之前提到的那樣,可以遍歷對象路徑,將對象圖序列化爲您想要的更遠。

+1

我最終選擇了一個解決方案,該解決方案由專門爲此目的創建的特定視圖組成。雖然當時你的建議可能會解決它(儘管我不像SNC那樣經驗豐富,現在你已經給了我關鍵字來尋找:))謝謝 – 2012-12-19 08:13:56

+0

如何將我的結果序列化爲JSON何時使用腳本化的Web服務? – Oleg 2015-03-26 13:56:04