ServiceNow - JSON Web服务,显示相关表

时间:2012-08-13 13:00:01

标签: json web-services join servicenow

我正在开发一个C#程序,它从ServiceNow数据库中检索数据并将该数据转换为C#.NET对象。我正在使用JSON Web服务以JSON格式返回我的数据。

我想要实现的目标如下:如果值之间存在关系映射(for 示例:我有一个名为Company的表,其中CEO不是TEXT字段,而是sys_id到Employee表)我希望能够输出不使用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服务中找不到任何允许我显示此类信息的内容 找到任何其他选择。它应该与加入表并以正确的格式显示它们有关。

1 个答案:

答案 0 :(得分:2)

我已经使用SNC将近三年了,并且没有发现您可以自动将表连接到Web服务中。您最好的选择是使用脚本化的Web服务,该服务可能需要查询参数和表参数。然后你可以根据需要将json序列化。

或者,另一种选择是生成一个将遍历GlideRecord对象的新处理器。传入URL的?JSON参数只是将请求传递给特定处理器的标志。不幸的是,我认为OOB是一个Java类而不是JS脚本,所以你需要像我前面提到的那样编写一个脚本来遍历对象路径,尽量远离你想去的对象图。