我正在使用 Kony Studio 5.5 进行跨平台开发。我使用JSON服务检索数据。我想在段中打印我的数据,但我无法映射其中的一些,因为它不在集合中。
"chartStat": " CHART NOT PREPARED ",
"passengers": [{
"trainBookingBerth": "RAC9 , 8,GN ",
"trainCurrentStatus": " CNF ",
"trainPassenger": "Passenger 1"
}],
"trainBoard": "Kovilpatti",
"trainBoardCode": "CVP",
"trainDest": "Chennai Egmore",
在上述有效内容中,我可以将passengers
映射到该细分受众群,但我还想将trainBoard
,trainBoardCode
和trainDest
映射到该细分受众群。
答案 0 :(得分:2)
如果您使用的是Kony服务编辑器,请根据您的要求解析输出。通过解析结果,可以隔离所需的参数-i.e。:过滤从服务返回的结果 - 仅在客户端需要并以我们可以指定的格式。
如果细分受众群中有三个标签,并且您希望显示服务返回的passengers
详细信息,请按以下步骤操作:
id
,请记住使用段的子窗口小部件的id
作为输出参数的id
。 [
{ "labelOneId": "RAC1 , 8,GN ", "labelTwoId": " CNF 1", "labelThreeId": "Passenger 1" },
{ "labelOneId": "RAC2 , 8,GN ", "labelTwoId": " CNF 2", "labelThreeId": "Passenger 2" },
{ "labelOneId": "RAC3 , 8,GN ", "labelTwoId": " CNF 3", "labelThreeId": "Passenger 3" },
{ "labelOneId": "RAC3 , 8,GN ", "labelTwoId": " CNF 4", "labelThreeId": "Passenger 4" }
]
labelOneId
,labelTwoId
和labelThreeId
将成为用于需要显示数据的细分的子项的ID的位置。
注意:如果您没有使用子窗口小部件的ID,则必须使用" for"格式化数据。循环迭代器。
从问题中提供的样本值中提取值:
var jsonReturned={
"chartStat": " CHART NOT PREPARED ",
"passengers": [{
"trainBookingBerth": "RAC9 , 8,GN ",
"trainCurrentStatus": " CNF ",
"trainPassenger": "Passenger 1"
}],
"trainBoard": "Kovilpatti",
"trainBoardCode": "CVP",
"trainDest": "Chennai Egmore"
};
var oneVal = jsonReturned["passengers"]["0"]["trainBookingBerth"];
var twoVal = jsonReturned["passengers"]["0"]["trainCurrentStatus"];
var threeVal = jsonReturned["passengers"]["0"]["trainPassenger"];
var fourVal = jsonReturned["trainBoard"];
var fiveVal = jsonReturned["trainDest"];
var dataForSegment = [{
"labelOneId": oneVal,
"labelTwoId": twoVal,
"labelThreeId": threeVal,
"lableFourId": fourVal,
"labelFiveId": fiveVal
}];
尝试将此设置为dataForSegment
作为细分数据。如果要添加任何其他值,您必须同样从JSON对象中提取数据并形成适合您的段的集合。
答案 1 :(得分:0)
这个问题是很久以前问过的,但是对于任何想知道如何做到这一点的人,可以使用分别用于 的addDataAt
和setDataAt
方法在段中的指定位置插入 或 替换单行数据。
摘自 Kony的小部件程序员指南》 about the addDataAt
method:
允许您在给定索引或节中添加一行数据。
addDataAt(data, rowIndex, sectionIndex)
允许您设置数据或修改行或节中的现有数据。
setDataAt(data, rowIndex, sectionIndex)
我希望这对以后的人有帮助。
答案 2 :(得分:0)
你需要按照这个结构把数据放到Segment...
var data=[
[{lblHeading:"Section1"},[{samplelabel:"1"},{samplelabel:"1"},{samplelabel:"1"},{samplelabel:"1"}]],
[{lblHeading:"Section2"},[{samplelabel:"1"},{samplelabel:"1"},{samplelabel:"1"},{samplelabel:"1"}]],
[{lblHeading:"Section3"},[{samplelabel:"1"},{samplelabel:"1"},{samplelabel:"1"},{samplelabel:"1"}]],
[{lblHeading:"Section34"},[{samplelabel:"1"},{samplelabel:"1"},{samplelabel:"1"},{samplelabel:"1"}]]
];
this.view.segmentList.setData(data);