3

我正在使用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,trainBoardCodetrainDest它。

4

3 回答 3

2

如果您使用的是 Kony 服务编辑器,请根据您的要求解析输出。通过解析结果,可以隔离所需的参数-即:过滤从服务返回的结果-仅在客户端需要并且以我们可以指定的格式。

如果您在细分中具有三个标签,并且您希望显示passengers服务返回的详细信息,请按照以下步骤操作:

  1. 解析您的 JSON 数据,id在服务编辑器中提及 时,请记住使用该id段的子小部件的作为id输出参数。
  2. 解析后你必须得到一个类似于以下的集合
    [
        { "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,labelTwoIdlabelThreeId将是用于需要显示数据的段的子项的 ID。

  1. 之后使用 Kony.ui.segment 小部件的 set data 方法来设置数据。

注意:如果您没有使用子小部件的 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
}];

尝试将其设置为dataForSegmentas 段数据。如果要添加任何附加值,则必须类似地从 JSON 对象中提取数据并形成适合您的细分的集合。

于 2014-03-23T18:46:19.897 回答
0

这个问题是很久以前提出的,但是对于任何想知道如何做到这一点的人,您可以使用addDataAtsetDataAt方法分别在 Segment 中的指定位置 插入 替换单行数据。

来自Kony 的 Widget Programmer's Guide 关于该addDataAt方法

允许您在给定索引或部分内添加一行数据。

addDataAt(data, rowIndex, sectionIndex)

关于setDataAt方法:_

允许您设置数据或修改行或部分内的现有数据。

setDataAt(data, rowIndex, sectionIndex)

我希望这对将来的其他人有所帮助。

于 2019-02-27T08:41:46.633 回答
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);   
于 2021-04-01T11:30:20.687 回答