1、json的官网:http://www.json.org/
2、使用java的jar包:http://json-lib.sourceforge.net/
这个包依赖的东西比较多,官网介绍如下:
Json-lib requires (at least) the following dependencies in your classpath:
- jakarta commons-lang 2.5
- jakarta commons-beanutils 1.8.0
- jakarta commons-collections 3.2.1
- jakarta commons-logging 1.1.1
- ezmorph 1.0.6
3、从业务逻辑层获取数据形成json格式的字符串
//stageList就是我们从业务逻辑层中获取的数据
private String parseStageToStr(List<Stage> stageList) {
StringBuilder sb = new StringBuilder(200);
if(CollectionUtils.isEmpty(stageList)) {
return "";
}
int size = stageList.size();
for(int i = 0; i < size; i++) {
Stage s = stageList.get(i);
sb.append(s.getStageId() + ":{");
StringBuilder tmp = new StringBuilder(200);
tmp.append("projectId:\""+ (s.getProjectId())+"\",");
tmp.append("subProjectId:\""+(s.getSubProjectId())+"\",");
tmp.append("stageNameId:\""+(s.getStageNameId())+"\",");
tmp.append("psName:\"" + (s.getPsName()==null?"":s.getPsName())+"\",");
tmp.append("planFromDate:\"" + (DateUtil.dateToStr(s.getPlanFromDate()))+"\",");
tmp.append("planToDate:\"" + (DateUtil.dateToStr(s.getPlanToDate()))+"\",");
tmp.append("stageLogId:\"" + (s.getStageLogId())+"\"");
//tmp.append("departmentIds:\""+(s.getDepartmentIds()==null?"":s.getDepartmentIds())+"\"");
sb.append(tmp);
sb.append("}");
if(i < size -1) {
sb.append(",");
}
}
return sb.toString();
}
4、在jsp页面中,解析json字符串
a)上面封装的json数据格式:{"265":{projectId:"0",subProjectId:"126",stageNameId:"1",psName:"2",planFromDate:"",planToDate:"",stageLogId:"100"},"270":{projectId:"0",subProjectId:"126",stageNameId:"1",psName:"",planFromDate:"",planToDate:"",stageLogId:"100"},"268":{projectId:"0",subProjectId:"126",stageNameId:"1",psName:"",planFromDate:"",planToDate:"",stageLogId:"100"}}
b)js中使用
var json = {<s:property value="#request.jsonStr" escape="false"/>};
//alert('<s:property value="#request.jsonStr" escape="false"/>');
function initTbody(){
var str = '';
for(var k in json){
var v = json[k];
var tr = '<tbody stageLogId="' + v.stageLogId
+ '" projectId="' + v.projectId
+ '" subProjectId="' + v.subProjectId
+ '">';
var stages = v.stages, idx = 0;
for(var m in stages){
tr += '<tr planFromDate="' + stages[m].planFromDate + '" planToDate="' + stages[m].planToDate + '" stageNameId="' + stages[m].stageNameId + '" psName="' + stages[m].psName + '" stageId="' + m + '" class="datarow" ondblclick="editStage(this)">';
}
5、jsp页面通过**.action?jsonParam="这里是json格式的数据"传入到逻辑层处理
/**
* 解析json数据
* @param str//格式:{"265":{projectId:"0",subProjectId:"126",stageNameId:"1",psName:"2",planFromDate:"",planToDate:"",stageLogId:"100"},"270":{projectId:"0",subProjectId:"126",stageNameId:"1",psName:"",planFromDate:"",planToDate:"",stageLogId:"100"},"268":{projectId:"0",subProjectId:"126",stageNameId:"1",psName:"",planFromDate:"",planToDate:"",stageLogId:"100"}}
* @return
* 2012-5-2 下午10:14:24
*/
private List<Stage> parseStageJson(String str) {
List<Stage> stageList = new ArrayList<Stage>();
if(StringUtils.isEmpty(str)) return stageList;
JSONObject array = JSONObject.fromObject(str);
Iterator<String> keys = array.keys();
while(keys.hasNext()) {
String key = keys.next();
System.out.println(key);
JSONObject value = array.getJSONObject(key);
Stage stage = new Stage();
try {
stage.setStageId(Integer.valueOf(key));
} catch (Exception e) {
Log.log(0, "新增");
}
Project project = new Project();
project.setProjectId(value.getInt("projectId"));
stage.setProject(project);
SubProject subProject = new SubProject();
subProject.setSubProjectId(value.getInt("subProjectId"));
stage.setSubProject(subProject);
StageName stageName = new StageName();
stageName.setStageNameId(value.getInt("stageNameId"));
stage.setStageName(stageName);
stage.setPsName(value.getString("psName"));
String planFromDate = value.getString("planFromDate");
if(StringUtils.isNotEmpty(planFromDate)) {
stage.setPlanFromDate(DateUtil.strToDate(planFromDate, "yyyy-MM-dd"));
}
String planToDate = value.getString("planToDate");
if(StringUtils.isNotEmpty(planToDate)) {
stage.setPlanToDate(DateUtil.strToDate(planToDate, "yyyy-MM-dd"));
}
String stageLogId = value.getString("stageLogId");
StageLog stageLog = new StageLog();
if(StringUtils.isNotEmpty(stageLogId)) {/
stageLog.setStageLogId(Integer.valueOf(stageLogId));
stage.setStageLog(stageLog);
} else {
this.setNewStage("1");
}
/*String departmentIds = value.getString("departmentIds");
stage.setDepartmentIds(departmentIds);*/
stageList.add(stage);
}
return stageList;
}
分享到:
相关推荐
Java中使用Json,具体过程和效果看博文 http://blog.csdn.net/evankaka/article/details/46741577
java直接访问链接url,并对返回的json字符串进行解析,java访问url,并返回json 字符串,对返回的json字符尽心解析,使用到的jar包。
附件内容为:Java组装map数据,然后转换为json数据格式;Java解析json数据
java 解析 json文件java 解析 json文件java 解析 json文件java 解析 json文件java 解析 json文件
java调用json参数的webservice 涉及技术: JAVA JSON WEBSERVICE
最近学习json收集的几个jar包,本来以为是两个但是总classnotfound异常,后来把另外几个导进来就可以了,为了给大伙便利,分享出来吧,,刚才看到竟然还有要5分的,哥只要1分绝不坑爹,我也是为了赚点分下载东西。
java中json处理的使用.doc
使用Java操作JSON字符串对象,使用Java操作JSON字符串对象
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式, json是个非常重要的数据结构,在web开发中应用十分广泛。下面通过本文给大家讲解Java中json使用方法,感兴趣的朋友一起看看吧
JSON官网上推荐的使用java解析json的类库,官网下载后的是未编译打包的java文件,这是我打包后的东东,使用时直接添加进Build path即可,简单实用……
在java中使用json封装数据和解析json数据的DEMO.
java处理JSON数据
java获取网络json数据包和解析json数据完整案例。 需要用到json.org也包含在里边。
java服务端生成json(json服务端),可以在浏览器上访问获取查看json,已测试通过
在java中使用json需要引入以下六个jar包,分别为: commons-lang-2.4.jar commons-collections-3.2.1.jar commons-beanutils-1.8.3.jar json-lib-2.4-jdk15.jar ezmorph-1.0.6.jar commons-logging-1.1.3.jar ...
读取nameID.txt文件中的NAMEID字段(key)对应值(value)并存储,读取NAMEID对应值,读取原始json文件并进行操作和输出,并创建一个包含原始json串的json对象,获取features数组的第i个json对象,读取properties...
java解析Json字符串java解析Json字符串java解析Json字符串java解析Json字符串
java中使用JSON必须使用的jar包,
java及j2ee开发中常需要将对象转成json字符串进行数据传输,该包提供了JAVA对象和json字符串之间的转换方法。常见的类有JSONObject等
此压缩包包含两个jar:json-lib-2.4-jdk15.jar和ezmorph-1.0.6.jar 这两个包都是java解析json数据的依赖包,而且是最新版,开源的东东好多人还要分,俺不要分,只希望对你有用。