PROC GROOVY 解析JSON

参考:http://saslist.com/blog/category/json/

下载jdk和groovy
1.安装jdk 默认安装
2解压groovy:到C:\Program Files (x86)\
参照http://saslist.com/blog/category/json/ 关于groovy的那段,配置groovy,并设置系统变量:
**********
(1)JDK的配置:
设置环境变量%JAVA_HOME%\bin,值为放置解压文件的目录,如C:\Program Files (x86)\Java\jdk1.8.0_141
增加环境变量path,指向%GROOVY_HOME%\bin
(2)groovy配置
设置环境变量GROOVY_HOME,值为放置解压文件的目录,如C:\Program Files (x86)\groovy-2.4.12
增加环境变量path,指向%GROOVY_HOME%\bin
(3)找到SAS执行程序的路径,如C:\Program Files\SASHome\SASFoundation\9.4
该路径下的\nls\en的sasv9.cfg,查找JREOPTIONS,添加
-Dtkj.app.class.path=C:\Program Files (x86)\Groovy\groovy-2.4.12\embeddable\groovy-all-2.4.12.jar

3将解析结果放在csv里面,需要将opencsv-3.10放在groovy安装包下面embeddable下面

4.接下来就可以在Groovy控制台中编写脚本了,在Windows控制台(cmd)下输入groovyconsole命令进入groovy控制台,在里面输入代码 println "HelloWorld"回车,按组合键CTRL+R就可以看到运行结果了。

解析:

json:

{
"acct_nbr": 1234,
"firstName": "John",
"lastName": "Smith",
"age": 25,
"address": {
"streetAddress": "21 2nd Street",
"city": "New York",
"state": "NY",
"postalCode": "10021"
}
}
,
{
"acct_nbr": 3456,
"firstName": "Sam",
"lastName": "Jones",
"age": 32,
"address": {
"streetAddress": "25 2nd Street",
"city": "New Jersy",
"state": "NJ",
"postalCode": "10081"
}
}

解析代码:

%let groovydir=C:\Program Files (x86)\groovy-2.4.12\embeddable; *the location the groovy JARs are located at;

%let sourcefile=.\data\test_1.txt;
%let outfile=.\data\test_1.csv;

proc groovy classpath="&groovydir.\groovy-all-2.4.12.jar;&groovydir.\opencsv-3.10.jar";

submit "&sourcefile" "&outfile";
import groovy.json.*/*加载json包*/
import com.opencsv.*

def input = new File(args[0]).text
def output = new JsonSlurper().parseText(input)
def csvoutput = new FileWriter(args[1])

CSVWriter writer = new CSVWriter(csvoutput);

String[] header = new String[2];
header[0] = "user_basic";
header[1] = "user_blacklist";
writer.writeNext(header);

output.statuses.each {
String[] user_basic_content1 = new String[8];
content[0] = it.user_basic.user_age.toString();
content[1] = it.user_basic.user_city.toString();
content[2] = it.user_basic.user_gender.toString();
content[3] = it.user_basic.user_idcard.toString();
content[4] = it.user_basic.user_idcard_valid.toString();
content[5] = it.user_basic.user_name.toString();
content[6] = it.user_basic.user_phone.toString();
content[7] = it.user_basic.user_phone_city.toString();
writer.writeNext(user_basic_content1);
}

writer.close();

endsubmit;
quit;

时间: 2024-11-07 03:01:19

PROC GROOVY 解析JSON的相关文章

利用fastjson解析json并通过js&ajax实现页面的无跳转刷新

1.json是一种优秀的数据格式,在移动开发和web开发中经常用到,本例中通过一个小案例讲解如何通过alibaba的开源框架fastjson来解析jason数据格式并通过js实现无跳转刷新 2,新建一个web项目,这是我的项目:我这里直接用servlet写的 注意导包,我这里到了很多无用的包,其实主要的包是下面几个: 这个三个包是必须的,其他都是开发基本web的常用包 3.创建一个domain: package com.keson.domain; import com.thoughtworks.

android之GSON解析JSON

Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库. 比如: <pre name="code" class="java">public class Order { public String id; public String OrderName; @Override public String toString() { return "id:"+id+",OrderNa

C# 解析 json

C# 解析 json JSON(全称为JavaScript Object Notation) 是一种轻量级的数据交换格式.它是基于JavaScript语法标准的一个子集. JSON采用完全独立于语言的文本格式,可以很容易在各种网络.平台和程序之间传输.JSON的语法很简单,易于人阅读和编写,同时也易于机器解析和生成. JSON与XML的比较◆可读性 JSON和XML的可读性相比较而言,由于XML提供辅助的标签,更加适合人阅读和理解.◆文件大小与传输 XML允许使用方便的标签,所以文件尺寸是要比J

使用QtScript库解析Json数组例子

本文转载自:http://blog.sina.com.cn/s/blog_671732440100uwxh.html 使用qtscipt库解析json数组首先在工程文件中加 QT        += script 然后头文件加 #include <QtScript> 然后解析 QString str = "{\"name\":\"xiaotang\", \"age\":\"23\", \"chi

C# 解析JSON格式数据

JSON简介 JSON(全称为JavaScript ObjectNotation) 是一种轻量级的数据交换格式.它是基于JavaScript语法标准的一个子集.JSON采用完全独立于语言的文本格式,可以很容易在各种网络.平台和程序之间传输.JSON的语法很简单,易于人阅读和编写,同时也易于机器解析和生成. JSON与XML的比较 ◆可读性 JSON和XML的可读性相比较而言,由于XML提供辅助的标签,更加适合人阅读和理解. ◆文件大小与传输 XML允许使用方便的标签,所以文件尺寸是要比JSON大

不适用工具类解析Json

解析的数据: { "citycode": "101051301", "citydesc": "黑龙江 双鸭山", "cityname": "双鸭山", "data": [ { "date": "2015-08-29", "icon": "d07|n07", "temperatur

python解析json文件

概念 序列化(Serialization):将对象的状态信息转换为可以存储或可以通过网络传输的过程,传输的格式可以是JSON.XML等.反序列化就是从存储区域(JSON,XML)读取反序列化对象的状态,重新创建该对象. JSON(JavaScript Object Notation):一种轻量级数据交换格式,相对于XML而言更简单,也易于阅读和编写,机器也方便解析和生成,Json是JavaScript中的一个子集. Python2.6开始加入了JSON模块,无需另外下载,Python的Json模

Android中解析JSON形式的数据

1.JSON(JavaScript Object Notation) 定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换.JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为. 2.JSON的结构: (1) Name/Value Pairs(无序的):类似所熟知的Keyed list. Hash table.Disctionary和Assoc

Xamarin调用JSON.net来解析JSON

再来我们要怎么解析JSON格示呢?在.net 中,我们很孰悉的JSON.net,没错,我们依然可以在Xamarin中使用他 感谢社群伟大的贡献 下载网址: http://components.xamarin.com/view/json.net/ 接续上一个项目我们多引入下载后的 Newtonsoft.Json.dll 记得要引入Android 下的 引入后就跟我们平常使用JSON.net 一样首先我们要为Facebook接回来的数据建立一个相对应的Class 这时候我们可以使用 http://j