1

ServiceNow データベースからデータを取得し、そのデータを C# .NET オブジェクトに変換する C# プログラムに取り組んでいます。JSON Web サービスを使用してデータを JSON 形式で返しています。

私が達成したいことは次のとおりです: 値の間にリレーショナル マッピングがある場合 (たとえば、会社というテーブルがあり、CEO は TEXT フィールドではなく、従業員テーブルへの sys_id です)そのデータを 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 サービスには、このような情報を表示したり、他の代替手段を見つけたりできるものは何も見つかりませんでした。テーブルを結合し、すべてを正しい形式で表示することと関係があるはずです。

4

1 に答える 1

2

私はほぼ 3 年間 SNC を使用してきましたが、Web サービスでテーブルを自動的に結合できることを知りませんでした。最適なオプションは、おそらくクエリ パラメータとテーブル パラメータを受け取るスクリプト化された Web サービスを使用することです。次に、必要に応じて結果をjsonでシリアル化できます。

または、別のオプションとして、GlideRecord オブジェクトをトラバースする新しいプロセッサを生成することもできます。URL に渡す ?JSON パラメータは、リクエストを特定のプロセッサに渡すための単なるフラグです。残念ながら、OOB は JS スクリプトではなく Java クラスであると私が信じているため、先に述べたのと同じように、オブジェクト グラフをシリアル化するオブジェクト パスをたどるスクリプトを作成する必要があります。

于 2012-12-16T23:12:12.660 に答える