处理Json的包:javax.json
编制XML的包:org.jdom
使用rest接口从前端获取Json格式的对象
@Path("Testrest")
public class TestRest extends ApiBase {
@POST
@Path("rest")
@Consumes(MediaType.APPLICATION_JSON)
public Document parseJson(JsonObject jsonData) {
}
}
访问URL:http://tseg4:9080/rest1/api/Testrest/rest
1. 有效的JSON格式
已定义的JSON语法(参看RFC 4627)中的介绍:
- JSON对象封装在大括号内{ }。空对象可以表示为{ }
- 数组封装在方括号内[ ]。空数组可以表示为 [ ]
- 成员由一个键-值对代表
- 成员中的键名应该使用双引号括起来
- 每个成员都应该有一个对象结构中唯一的键
- 值如果是字符串,则表示括在双引号中
- 布尔值使用小写true或false表示
- 数字使用双精度浮点格式表示;支持科学记数法形式;数字前不应该有零
- “攻击(冲突)”(像单、双引号、大、中括号等)性质的字符必须使用反斜杠进行转义
- 空值由小写null表示
- 其它类型,如日期,(JSON)本身不支持,应该由解析器/客户端处理转换为字符串
- 对象或数组每个成员后面必须跟一个逗号,如果它不是最后一个的话
- 常见的JSON文件扩展名是.json
- JSON文件的MIME类型为application/json
参考链接:http://wiki.freepascal.org/JSON/zh_CN
2. Json对象
{
"modules":[
{
"id":"jsPlumb_2_2",
"ename":"PI",
"classtype":"submittest.submittestRunner",
"showclass":"submittest.submittest",
"offsetTop":50,
"offsetLeft":360,
"params":{
"srcpath":"tert"
}
},
{
"id":"jsPlumb_2_13",
"ename":"WordCount",
"classtype":"com.zte.pgm.bspalgorithm.wordcount.wordCountRunner",
"showclass":"wordcount.wordCountNode",
"offsetTop":50,
"offsetLeft":192,
"params":{
"srcpath":"fert",
"dstpath":"tert"
}
}
],
"connections":[
{
"id":"con_19",
"sourceId":"jsPlumb_2_13",
"targetId":"jsPlumb_2_2"
}
]
}
3. 对Json对象进行遍历
JsonArray arrayM = jsonData.getJsonArray("modules");
int length = arrayM.size();
for (int i = 0; i < length; i ++) {
JsonObject object = arrayM.getJsonObject(i);
this