我正在使用带有DBXJSON
的Delphi XE2,而我在处理String中包含的JsonArray时遇到了问题。我得到的字符串是:
"[
{DAT_INCL: \"2/3/2012 16:45:9\", NUM_ORDE: 1, NUM_ATND: 734, NUM_ACAO: 2, NUM_RESU: 3},
{DAT_INCL: \"2/3/2012 16:45:10\", NUM_ORDE: 2, NUM_ATND: 734, NUM_ACAO: 4, NUM_RESU: 5},
{DAT_INCL: \"2/3/2012 16:45:10\", NUM_ORDE: 3, NUM_ATND: 734, NUM_ACAO: 8, NUM_RESU: NULL}
]"
该死的引号。
无论我怎么努力,我都无法抓住这个阵列,没有ParseJSONValue
并且没有疯狂的类型杂耍可以让阵列从这个引号监狱中出来。
也许你们其中一个人拿到钥匙?
编辑:此字符串已经是一些类型转换的结果。如果有人有兴趣看到我如何提取这个字符串,也许找到一个更好的方法来最终得到阵列(他真的很孤独和害怕),这就是我的做法:
最初,我有一对名为jObject的两对TJsonObject
{
"id": 0,
"data": "[{DAT_INCL: \"08/03/2012 10:07:08\", NUM_ORDE: 1, NUM_ATND: 1, NUM_ACAO: 2, NUM_RESU: 3},
{DAT_INCL: \"08/03/2012 10:07:09\", NUM_ORDE: 2, NUM_ATND: 1, NUM_ACAO: 4, NUM_RESU: 5},
{DAT_INCL: \"08/03/2012 10:07:09\", NUM_ORDE: 3, NUM_ATND: 1, NUM_ACAO: 8, NUM_RESU: NULL}]"
}
我继续提取相关的TJsonPair
,命名为jPair:
jPair := jObject.Get(1);
让我知道这个:
"data": "[{DAT_INCL: \"08/03/2012 10:07:08\", NUM_ORDE: 1, NUM_ATND: 1, NUM_ACAO: 2, NUM_RESU: 3},
{DAT_INCL: \"08/03/2012 10:07:09\", NUM_ORDE: 2, NUM_ATND: 1, NUM_ACAO: 4, NUM_RESU: 5},
{DAT_INCL: \"08/03/2012 10:07:09\", NUM_ORDE: 3, NUM_ATND: 1, NUM_ACAO: 8, NUM_RESU: NULL}]"
由此,我提取了String
,命名为sString
sString:= jPair.JsonValue.ToString;
在问题的开头,我把那个字符串给了我。到目前为止,这一切都很好。