製品 API のエラーと思われるものをメモしました。問題は次のとおりです:- 1. 返された JSON に複数のプロセス (私の場合は 2 つのプロセス) が含まれている場合、JSON の結果は次のようになります:-
{"total":2,"data":[{"id":"leaveApp#2#leaveApplicationProcess","packageName":"Leave App","name":"Leave Application Process","packageId":"leaveApp","label":"Leave Application Process ver 2","version":"2"},{"id":"leaveApp#2#process1","packageName":"Leave App","name":"Leave Application Process2","packageId":"leaveApp","label":"Leave Application Process2 ver 2","version":"2"}]}
そして、次のjavaScriptを使用して2つのプロセスを表示できます:-
$(document).ready(function () {
$.ajax({
type: "GET",
url: "http://localhost:8080/jw/web/json/workflow/process/list?j_username=kermit&hash=9449B5ABCFA9AFDA36B801351ED3DF66&loginAs=admin&packageId=leaveApp",
dataType: "JSONP",
success: function (result) {
$.each(result.data, function (key, val) {
var str = val.name + ' | Version ' + val.version;
$('<li/>', { text: str })
.appendTo($('#products'));
}); }
}); });
一方、packageid にプロセスが 1 つしか含まれていない場合、上記の Java スクリプトは"undefined"
JSON を返します。
{"total":1,"data":{"id":"crm#1#process1","packageName":"CRM","name":"Proposal Approval Process","packageId":"crm","label":"Proposal Approval Process ver 1","version":"1"}}.
では、プロセスの数に関係なく javascript を機能させる方法について誰か助けてもらえますか、またはこれは API 自体の問題ですか?
よろしくお願いします
アップデート
I modify my JavaScript to be as follow:-
$.ajax({
type: "GET",
// url: "http://localhost:8080/jw/web/json/workflow/process/list?j_username=kermit&hash=9449B5ABCFA9AFDA36B801351ED3DF66&loginAs=admin&packageId=" + 'name',
url: fullurl,
dataType: "JSONP",
// contentType: "application/json; charset=utf-8",
success: function (result) {
var arr = ( (typeof(result.data) == 'object') &&
(result.data.constructor.name == 'Array') )
? result.data
: [result.data];
$.each(arr, function (key, val) {
// Format the text to display.
// var str = val.packageName + ' | ' + val.packageId;
var str = val.name + ' | Version ' + val.version;
// Add a list item for the product.
$('<li/>', { text: str })
.appendTo($('#products'));
});
}
});
しかし、現在、JSONオブジェクトが複数ある場合は「未定義」が返されますが、JSOnオブジェクトが1つしかない場合は正常に動作します...したがって、私の元の問題は現在逆です。