我找不到任何关于如何解析一串键/值 paris AKA 查询字符串的信息,如下所示:
FieldType="String"&FieldFormat="^[a-z0-9!#$%&'*+/=?^_`{|}~-]+$"
字段分隔符可能包含在值中,如上面的示例,这不能用作 Web 请求参数列表。
我发现了这个:在逗号分隔的项目列表上运行循环进度 4GL
但entry()
不关心数据是否在 qoutation 中。
= 编辑 =
所以我找到了一个不太理想的解决方案,我希望没有人需要模仿
DO jj=1 TO NUM-ENTRIES(curr,"&"):
DEFINE VARIABLE pos AS INTEGER NO-UNDO.
ASSIGN
k = entry( 1, ENTRY(jj,curr,"&"), "=")
v = entry( 2, ENTRY(jj,curr,"&"), "=")
pos = INDEX( curr, k + "=" ).
/* Check if this is a qouted value*/
IF NUM-ENTRIES( SUBSTRING( curr, pos, ABS( INDEX(curr, "&", pos) - pos) ) ,'"') > 1 THEN
ASSIGN v = ENTRY( 2, SUBSTRING( curr, pos) , '"').
end.
IF 语句是由噩梦构成的!