`

java中的JSON使用

    博客分类:
  • json
 
阅读更多

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

    本文将深入探讨在Java中如何使用JSON,以及其在实际开发中的应用场景。 首先,Java中处理JSON的主要工具有两个:Jackson和Gson。这两个库提供了API,可以帮助我们轻松地将Java对象转换为JSON字符串,以及将JSON字符...

    java中json使用到的所有jar包

    在Java开发中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于前后端数据传输。处理JSON在Java中通常涉及到几个关键的库,这些库提供了JSON的序列化与反序列化功能,以及解析和生成JSON对象...

    Java组装json和java解析json数组

    附件内容为:Java组装map数据,然后转换为json数据格式;Java解析json数据

    java 解析 json文件 java 解析 json文件

    Java解析JSON文件是Java开发中常见的一项任务,特别是在与Web服务交互或处理API响应时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其简洁和易于阅读及编写的特点,被广泛应用于网络数据传输...

    JAVA-JSON工具转换类

    在JAVA开发中,处理JSON数据通常需要借助特定的库来完成,如本话题中提到的`json-lib`和`ezmorph`。 `json-lib`是一个Java语言实现的JSON库,它提供了多种数据类型到JSON的转换,包括JavaBean、Map、List、数组等。...

    java调用json参数的webservice

    综上所述,通过Java调用带有JSON参数的WebService,涉及到了Java编程语言的使用、JSON数据格式的处理以及WebService通信机制。开发者需要掌握这些技术来实现不同类型的应用程序之间的互操作性和数据交换。

    java使用Json所需要导入的所有jar包

    为了在Java程序中使用JSON,你需要引入一些特定的库,这些库提供了处理JSON对象的方法和功能。本资源包含的是"java使用Json所需要导入的所有jar包",确保了你在处理JSON数据时所需的全部依赖。 首先,最重要的库是`...

    java中json使用的jar包

    最近学习json收集的几个jar包,本来以为是两个但是总classnotfound异常,后来把另外几个导进来就可以了,为了给大伙便利,分享出来吧,,刚才看到竟然还有要5分的,哥只要1分绝不坑爹,我也是为了赚点分下载东西。

    java中json处理的使用.doc

    首先,文档中使用的库是`net.sf.json`,这是一个开源的Java库,它提供了对JSON的全面支持,包括序列化和反序列化Java对象到JSON,以及从JSON解析回Java对象。具体来说,`JSONObject`类代表一个JSON对象,而`...

    java-json.jar.zip

    例如,XML的命名空间在JSON中没有直接的表示,XML的属性和JSON的对象键值对也有所不同。不同的库可能会有不同的处理策略,比如忽略某些特性,或者采用特定的编码方式。 此外,为了确保转换的准确性和兼容性,开发者...

    使用Java操作JSON字符串对象

    使用Java操作JSON字符串对象,使用Java操作JSON字符串对象

    java服务端生成json(json服务端)

    在Java中,我们可以使用多种库来实现JSON的生成,如Gson和FastJson。 **Gson库** Google开发的Gson库提供了强大的功能,能够将Java对象转换为JSON字符串,反之亦然。使用Gson,你可以轻松地将Java对象序列化为JSON...

    JAVA中用到的json包

    在Java编程语言以及基于J2EE的企业级应用开发中,JSON(JavaScript Object Notation)是一种广泛使用的轻量级数据交换格式。它易于人阅读和编写,同时也容易让机器解析和生成。JSON包在Java中扮演着至关重要的角色,...

    java中json的封装和解析

    本篇将主要探讨使用Java中的JSON处理,特别是通过Jackson库进行封装和解析。 一、JSON基本概念 JSON是一种独立于语言的数据格式,基于JavaScript语法,但不依赖JavaScript执行。其数据结构主要由对象(Object)和数...

    java解析json完整案例

    在Java中,我们可以使用多种库来处理JSON,其中最常用的包括`org.json`库和`Jackson`库。本案例主要涉及`org.json`库,它是一个小巧且功能强大的JSON库,适用于Java平台。 首先,我们需要在项目中引入`org.json`库...

    java遍历JSON树

    ### Java遍历JSON树知识点详解 ...通过以上介绍,我们可以看到,在Java中遍历JSON树并不复杂,但确实需要理解JSON的基本结构以及所使用的库的具体用法。希望本文能帮助你更好地理解和掌握这一技能。

    使用java请求json接口数据

    在Java编程中,请求JSON接口数据...总之,使用Java请求JSON接口数据是Java开发中的常见任务,涉及到网络通信和JSON解析。理解HTTP协议的基本原理,熟悉Java的HTTP客户端库以及JSON处理库的使用,是掌握这一技能的关键。

    使用java解析json格式的字符串

    JSON官网上推荐的使用java解析json的类库,官网下载后的是未编译打包的java文件,这是我打包后的东东,使用时直接添加进Build path即可,简单实用……

    Java中使用Json的net.sf.json包

    `net.sf.json`库主要包含了两个核心类:`JSONObject`和`JSONArray`,它们分别对应于JSON中的对象和数组类型。`JSONObject`类允许我们以键值对的形式存储数据,而`JSONArray`则可以存储一组有序的值。这两个类提供了...

    java中json格式转化所需jar包

    总的来说,Java中的JSON处理涉及到的关键知识点包括:JSON格式的理解、Jackson库的使用(如`ObjectMapper`类)、Gson库的使用以及org.json库的使用。了解并熟练掌握这些库,可以方便地在Java项目中进行JSON数据的...

Global site tag (gtag.js) - Google Analytics