我想解析JSON文件並將數據存儲在SAS數據集中以下是JSON文件的示例。使用SAS PROC解析Json文件到SAS數據集DS2
現在我只是試圖解析S數組作爲第一步。它有2個對象,所以輸出SAS數據集(最終目標是創建一個哈希表)將有2個觀測值,如下所示。
1 14162 E NG 1455209 98
2 14163 EN NGG 1455210 784
這是我試過的代碼....但沒有得到任何行。由於DS2是SAS 9.4M3中的新功能,我無法找到很多文檔。我想這是錯誤的"do while (j.ISRIGHTBRACE(tokenType));"
但不確定。
proc ds2;
data Snaps (overwrite=yes);
dcl package json j();
dcl nvarchar(30) Key value;
dcl varchar(1000000) character set utf8 response;
dcl int rc;
dcl package http webQuery();
dcl int rc tokenType parseFlags;
dcl nvarchar(128) token;
dcl integer i rc;
drop response rc;
retain i 0;
method init();
webQuery.createGetMethod('http://XXXXXXXX.com:9090/query?Date=20160211');
webQuery.executeMethod();
webQuery.getResponseBodyAsString(response, rc);
rc = j.createParser(response);
do while (rc = 0);
i=i+1;
j.getNextToken(rc, token, tokenType, parseFlags);
put token=;
if lowcase(strip(token)) = 'shots' then do;
put 'inside shots =-----------------------------------------';
j.getNextToken(rc, token, tokenType, parseFlags);
put '--------------------ARRAY---------------------' token=;
if j.ISLEFTBRACKET(tokenType) then do; *Entered in to an Array;
j.getNextToken(rc, token, tokenType, parseFlags);
put '------------------OBJECT-----------------------' token=;
if j.ISLEFTBRACE(tokenType) then do;*Entered in to an Object;
do while (j.ISRIGHTBRACE(tokenType));
j.getNextToken(rc, token, tokenType, parseFlags);
put '------------------KEY-----------------------' token=;
if j.ISSTRING(tokenType) then do;
Key=token;
j.getNextToken(rc, token, tokenType, parseFlags);
put '---------------------VALUE--------------------' token=;
Value=token;
Output;
end;
end;
end;
end;
end;
if i > 100 then stop;
end;
end; * method init;
method term();
rc = j.destroyParser();
end;
enddata;
run;
quit;
感謝.........
既然你用DS2來做,我假設你已經看過這篇博文:http://blogs.sas.com/content/sasdummy/2015/09/28/parse-json-from-薩斯/。我也必須解析一個JSON文件,這是非常困難的。 SAS只是沒有一個簡單的方法來解析這些......我設法使用數據步進行非常基本的解析,但它不可靠。我讚賞你使用DS2!它非常強大,但是很新,很少有人知道它。 –
@StuSztukowski:是的,那是我偶然發現的第一個使用非常基本的json文件的博客。我的Json結構非常複雜。我在我的問題中粘貼的Json文件只是我們實際Json的一部分。 –
你能提供一個你的JSON文件的完整結構的例子嗎?您提供的樣本非常簡單,可以通過我認爲的數據步驟進行處理,如果沒有這些額外的信息,人們很難再幫助您。 – user667489