Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从字符串内部提取JsonArray_Json_Delphi_Type Conversion - Fatal编程技术网

从字符串内部提取JsonArray

从字符串内部提取JsonArray,json,delphi,type-conversion,Json,Delphi,Type Conversion,我将DelphiXe2与DBXJSON一起使用,处理字符串中包含的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: \"

我将DelphiXe2与
DBXJSON
一起使用,处理字符串中包含的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}]"
从中,我提取了名为sString的
字符串

sString:= jPair.JsonValue.ToString;

这让我明白了问题开头的那根弦。到目前为止,这已经是最好的了。

为什么需要
jPair.JsonValue.ToString
?使用
jPair.JsonValue作为TJsonArray
获取arrayYour的JSON字符串它似乎无效。@RRUZ是正确的,没有必要用反斜杠转义双引号(正确的JSON在我的答案中)可能重复@Teran,RRUZ是正确的,但不是因为您陈述的原因。JSON中确实需要转义引号,因为JSON字符串由引号分隔。在本例中,我们将(错误的)JSON保存在JSON字符串中。