sas 解析json
代码:
proc ds2;
data _null_;
method init();
dcl package json j();
dcl int rc tokenType parseFlags;
dcl bigint lineNum colNum;
dcl nvarchar(128) token abc t1;
abc = 'xyz';
t1 = '{"abc" : 1 }';
rc = j.createParser( t1 );
if (rc ne 0) then goto TestError;
* obj open;
j.getNextToken( rc, token, tokenType, parseFlags, lineNum, colNum );
if ( rc ne 0 ) then goto TestError;
PUT "1、" rc= token= tokenType= parseFlags= lineNum= colNum= ;
* obj label;
j.getNextToken( rc, token, tokenType, parseFlags, lineNum, colNum );
if ( rc ne 0 ) then goto TestError;
PUT "2、" rc= token= tokenType= parseFlags= lineNum= colNum= ;
* obj value;
j.getNextToken( rc, token, tokenType, parseFlags, lineNum, colNum );
if ( rc ne 0) then goto TestError;
PUT "3、" rc= token= tokenType= parseFlags= lineNum= colNum= ;
* obj close;
j.getNextToken( rc, token, tokenType, parseFlags, lineNum, colNum );
if ( rc ne 0 ) then goto TestError;
PUT "4、" rc= token= tokenType= parseFlags= lineNum= colNum= ;
Exit:
rc = j.destroyParser();
return;
TestError:
put 'Test ended abnormally.';
goto Exit;
end;
enddata;
run;
quit;
运行日记:
. rc=0 token={ tokenType=64 parseFlags=0 lineNum=1 colNum=1
. rc=0 token=abc tokenType=256 parseFlags=1 lineNum=1 colNum=6
. rc=0 token=1 tokenType=512 parseFlags=3 lineNum=1 colNum=10
. rc=0 token=} tokenType=128 parseFlags=0 lineNum=1 colNum=12
GETNEXTTOKEN Method
Returns the next validated JSON language item or element from the JSON text.
Syntax
Form 1:
package.GETNEXTTOKEN (rc, token-type, parse-flags,);
Form 2:
package.GETNEXTTOKEN (rc, token, token-type, parse-flags,);
Form 3:
package.GETNEXTTOKEN (rc, token, token-type, parse-flags, line-number,
column-number);
Arguments
package
specifies an instance of the JSON package.
rc
specifies the variable to hold the return code value. Possible return code values are as follows:
0 Success
100 The output token argument's maximum length was not large enough and truncation occurred.
101 Done. Depending on the use case, this might or might not be expected.
300 End of text. Depending on the use case, this might or might not be expected.
301 An error occurred while parsing the text.
token-type
token-type can be one of the following values:
4 Boolean true
8 Boolean false
16 Left bracket ( [ )
32 Right bracket ( [ )
64 Left brace ( { )
128 Right brace ( } )
256 String
512 Numeric
1024 Null
parse-flags
parse-flags output value can be an integer flag set consisting of one or more of the following flags:
0x00000001 token is a label in an object
0x00000002 token is not complete
0x00000003 token is an integral numeric
0x00000004 token is a floating point number
token
is the next token or string.
line-number
Updates the given integer variable argument with the line number within the text where the token is located.
Tip You can use the line number to help determine the location of the token within the text.
column-number
Updates the given integer variable argument with the column number within the text where the token is located.
Tip You can use the column number to help determine the location of the token within the text.
Details
All of the arguments to the GETNEXTTOKEN method are passed by reference.
You can use the IS* methods to test the token type.
sas 解析json的更多相关文章
- Xamarin.Android下获取与解析JSON
一.新建项目 1.新建一个Android项目,并命名为为NetJsonList 2.右击引用,选择添加引用,引用System.Json.dll 二.同步请求 既然是跨平台,我们自然不能按照java下的 ...
- 使用Newtonsoft.Json.dll(JSON.NET)动态解析JSON、.net 的json的序列化与反序列化(一)
在开发中,我非常喜欢动态语言和匿名对象带来的方便,JSON.NET具有动态序列化和反序列化任意JSON内容的能力,不必将它映射到具体的强类型对象,它可以处理不确定的类型(集合.字典.动态对象和匿名对象 ...
- 阶段一:通过网络请求,获得并解析JSON数据(天气应用)
“阶段一”是指我第一次系统地学习Android开发.这主要是对我的学习过程作个记录. 在上一篇阶段一:解析JSON中提到,最近在写一个很简单的天气预报应用.即使功能很简单,但我还是想把它做成一个相对完 ...
- 阶段一:解析JSON
“阶段一”是指我第一次系统地学习Android开发.这主要是对我的学习过程作个记录. 最近学到解析JSON格式的网络数据,而作业也要求自己找一个天气预报的API地址,然后解析其中JSON格式的数据.可 ...
- C语言创建及解析Json的使用法则
参考原文:http://blog.csdn.net/xukai871105/article/details/33013455 JSON(JavaScriptObject Notation)是一种轻量级 ...
- 不一样的dynamic解析json 万能方法
写过javascript的人都知道js解析json 1:(JSON) 字符串转换为对象. var str = '{"name":"lsw","hobb ...
- C# 解析JSON的几种办法
欲成为海洋大师,必知晓海中每一滴水的真名. 刚开始只是想找一个转换JSON数组的方法,结果在MSDN翻到一大把. 搜索过程中免不了碰到一大堆名词:WCF => DataContract => ...
- eval解析JSON中的注意点
在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery ...
- C#解析json文件的方法
C# 解析 json JSON(全称为JavaScript Object Notation) 是一种轻量级的数据交换格式.它是基于JavaScript语法标准的一个子集. JSON采用完全独立于语言的 ...
随机推荐
- <------------------字符流--------------------->
FileWriter 字符输出流: 方法: 写入:write 刷新:flush public static void main(String[] args) throws IOException { ...
- Django中需要注意的点
需要注意的点 请求相关 注销的 用法 def logout(request): request.session.flush()#输入此内容可以注销用户登录信息 # 即将session信息清除掉 ret ...
- VIM命令操作
退出命令 :wq 保存并退出 ZZ 保存并退出 :q! 强制退出并忽略所有更改 :e! 放弃所有修改,并打开原来文件.
- 什么是 PWA?
出处:https://segmentfault.com/a/1190000012353473
- jmeter分布式测试的坑
转 : jmeter分布式测试的坑 有关jmeter分布式测试的环境配置,大概就是那样,但是每次想要进行jmeter分布式测试的时候,总是会有各种奇怪的问题,下面整理了一些可能遇到的坑. 只要错误中出 ...
- Hanlp分词实例:Java实现TFIDF算法
算法介绍 最近要做领域概念的提取,TFIDF作为一个很经典的算法可以作为其中的一步处理. 关于TFIDF算法的介绍可以参考这篇博客http://www.ruanyifeng.com/blog/2013 ...
- Linux磁盘监控工具说明
1.1 iostat 系统systat包里的工具,以kB/s为单位统计,2表示以2秒为频率统计一次:iostat –x –k 2 10000 rrqm/s:每秒这个设备相关的读取请求有多少被Merge ...
- OpenEXR的采样机制
OpenEXR的输出机制是无损的,这样做会受到部分低配置电脑存储及运算带宽的限制. 当前有很多针对图像的压缩算法来解决这个问题,OpenEXR另外提供了WRITE_YC这种存储方式,这种方式会将RGB ...
- vue中为对象添加值的问题
demo: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...
- 胖子哥的大数据之路(11)-我看Intel&&Cloudera的合作
一.引言 5月8日,作为受邀嘉宾,参加了Intel与Cloudera在北京中国大饭店新闻发布会,两家公司宣布战略合作,该消息成为继Intel宣布放弃大数据平台之后的另外一个热点新闻.对于Intel的放 ...