【发布时间】:2011-04-06 16:11:04
【问题描述】:
enter code here我正在构建一组函数,它们根据参数和内部选择返回一个 json 字符串。
我遇到的问题是当我在 pl/sql 中循环游标,构建 json 的结构时,它在最后一个节点的末尾添加了一个额外的逗号。
它可以正确解析,但 json 的 html eval 由于那个额外的逗号而失败。是否可以在 pl/sql.xml 中删除特定字符(比如字符串中的最后一个逗号)。我查看了 REPLACE,但我找不到有关将 REPLACE 与特定字符实例一起使用的文档。
循环看起来像:
FOR appGroup IN appGroups
LOOP
tsResults := tsResults || ' "Group" : { ';
tsResults := tsResults || ' "Id" : "' || appGroup.group_id || '", ';
tsResults := tsResults || '"Name" : "' || appGroupd.display_name || '" ';
tsResults := tsResults || ' }, ';
END LOOP;
让我伤心的是最后一行的最后一个逗号。
有没有办法杀死最后一个而不抓住它之前的所有字符串字符,以及它之后的所有字符并将它们放在一起?
任何关于我如何解决这个问题的建议也将不胜感激。
更新
使用 Cybernate 的答案,我能够进行一些更改以使其正常工作......最初紧随 END LOOP;我在结果字符串中添加了更多代码:
tsResults := tsResults || '}] }';
正确终止了我正在处理的组数组...
我在该行之前放置了以下代码:
tiLastComma := INSTR(tsResults, ',', -1);
tsResults := SUBSTR(tsResults, 1, tiLastComma - 1);
json 现在可以正确终止,并且在与 jquery 一起使用时可以正确评估。
【问题讨论】: