`

org.json.JSONObject对json的解析

 
阅读更多

 

 

 

写法和 google的json类解析json类似, 贴出来做一个备份:

 

import org.apache.commons.lang.StringUtils;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.xuele.bigdata.xetl.model.ActionLogInfo;
import com.xuele.bigdata.xetl.model.Constant;


public class JsonParseUtil {

	private static Logger logger= LoggerFactory.getLogger(JsonParseUtil.class);
	private static String dataObjKey = "data";

	public static ActionLogInfo parseActionJson(String jsonStr){
		
		try {
			JSONObject jsonObj;
			try {
				jsonObj = new JSONObject(jsonStr);
			} catch (JSONException e) {
				logger.error("----"+jsonStr);
				logger.error("", e);
				return null;
			}
			int actId=jsonObj.getInt(Constant.ACTID);
			String module="";
			if(jsonObj.has(Constant.MODEL)){
				module=jsonObj.getString(Constant.MODEL);
			}
			String ip="";
			if(jsonObj.has(Constant.IP)){
				ip=jsonObj.getString(Constant.IP);
			}
			String countyId="";
			if(jsonObj.has(Constant.COUNTYID)){
				countyId=jsonObj.getString(Constant.COUNTYID);
			}
			String countyName="";
			if(jsonObj.has(Constant.COUNTYNAME)){
				countyName=jsonObj.getString(Constant.COUNTYNAME);
			}
			int originCode=jsonObj.getInt(Constant.ORIGINCODE);
			String role=jsonObj.getString(Constant.ROLE);
			String schoolId="";
			if(jsonObj.has(Constant.SCHOOLID)){
				schoolId=jsonObj.getString(Constant.SCHOOLID);
			}
			String schoolName="";
			if(jsonObj.has(Constant.SCHOOLNAME)){
				schoolName=jsonObj.getString(Constant.SCHOOLNAME);
			}
			long time=0;
			if(jsonObj.has(Constant.TIME)){
				time=jsonObj.getLong(Constant.TIME);
			}
			//String userIcon=jsonObj.getString(Constant.USERICON);
			String userIcon="";
			if(jsonObj.has(Constant.USERICON))
				userIcon=jsonObj.getString(Constant.USERICON);

			String userId=jsonObj.getString(Constant.USERID);
			String userIp=jsonObj.getString(Constant.USERIP);
			String userName="";
			if(jsonObj.has(Constant.USERNAME)){
				userName=jsonObj.getString(Constant.USERNAME);
			}
			String provinceId="";
			if(jsonObj.has(Constant.PROVINCEID)){
				provinceId=jsonObj.getString(Constant.PROVINCEID);
			}
			String provinceName="";
			if(jsonObj.has(Constant.PROVINCENAME)){
				provinceName=jsonObj.getString(Constant.PROVINCENAME);
			}
			String cityId="";
			if(jsonObj.has(Constant.CITYID)){
				cityId=jsonObj.getString(Constant.CITYID);
			}
			String cityName="";
			if(jsonObj.has(Constant.CITYNAME)){
				cityName=jsonObj.getString(Constant.CITYNAME);
			}
			//新增班级ID,班级名称,年级ID ADD BY WHH 2017-05-26
			String className = "";
			if(jsonObj.has(Constant.CLASSNAME)){
				className=jsonObj.getString(Constant.CLASSNAME);
			}
			String classId = "";
			if(jsonObj.has(Constant.CLASSID)){
				classId=jsonObj.getString(Constant.CLASSID);
			}

			String gradeId = "";
			if(jsonObj.has(Constant.GRADEID)){
				gradeId=jsonObj.getString(Constant.GRADEID);
			}





			JSONObject dataObj=jsonObj.getJSONObject(dataObjKey);

			String postId="";
			if(dataObj.has(Constant.POSTID)){
				postId=dataObj.getString(Constant.POSTID);
			}
			
			int postType=0;
			if(dataObj.has(Constant.POSTTYPE)){
//			postType=dataObj.getString(Constant.POSTTYPE);
				if(StringUtils.isEmpty(dataObj.get(Constant.POSTTYPE).toString())){
					postType=-1;
				}else{
					postType=Integer.parseInt(dataObj.get(Constant.POSTTYPE).toString());
				}
			}
			
			String beUserId = "";
//			if(dataObj.has("praiseUserId")){//praisedUserId
//				beUserId=dataObj.get("praiseUserId").toString();
//			}else 
			if(dataObj.has("beCommentUserId")){//beCommentUserId
				beUserId=dataObj.get("beCommentUserId").toString();
			}else if(dataObj.has("praisedUserId")){
				beUserId=dataObj.getString("praisedUserId");
			}
			
			String beUserName = "";
			if(dataObj.has("praisedUserName")){//praisedUserName
				beUserName=dataObj.get("praisedUserName").toString();
			}else if(dataObj.has("beCommentUserName")){//beCommentUserName
				beUserName=dataObj.get("beCommentUserName").toString();
			}
			
			String beUserRoleId = "";
			if(dataObj.has("praisedUserRoleId")){
				beUserRoleId=dataObj.get("praisedUserRoleId").toString();
			}else if(dataObj.has("beCommentUserRoleId")){
				beUserRoleId=dataObj.get("beCommentUserRoleId").toString();
			}
			String beUserIcon = "";
			if(dataObj.has("praisedUserIcon")){
				beUserIcon=dataObj.get("praisedUserIcon").toString();
			}else if(dataObj.has("beCommentUserIcon")){
				beUserIcon=dataObj.get("beCommentUserIcon").toString();
			}
			String beUserCountyId = "";
			if(dataObj.has("praisedUserCountyId")){
				beUserCountyId=dataObj.getString("praisedUserCountyId");
			}else if(dataObj.has("beCommentUserCountyId")){
				beUserCountyId=dataObj.getString("beCommentUserCountyId");
			}
			
			String subjectId = "";
			if(dataObj.has(Constant.SUBJECTID)){
				subjectId=dataObj.getString(Constant.SUBJECTID);
			}
			String subjectName = "";
			if(dataObj.has(Constant.SUBJECTNAME)){
				subjectName=dataObj.getString(Constant.SUBJECTNAME);
			}
			
			String unitId = "";
			if(dataObj.has(Constant.UNITID)){
				unitId=dataObj.getString(Constant.UNITID);
			}
			String unitName = "";
			if(dataObj.has(Constant.COUNTYNAME)){
				unitName=dataObj.getString(Constant.UNITNAME);
			}
			int teachType = 0;
			if(dataObj.has(Constant.TEACHERTYPE)){
				teachType=dataObj.getInt(Constant.TEACHERTYPE);
			}
			int teachChooseStudentCount = 0;
			if(dataObj.has(Constant.TEACHCHOOSESTUDENTCOUNT)){
				teachChooseStudentCount=dataObj.getInt(Constant.TEACHCHOOSESTUDENTCOUNT);
			}
			
			//1600022 作业点赞   发起人 (userId)为被统计学生

			//1600035  提交作业  发起人 (userId)为被统计学生
			String bookId = "";
			if(dataObj.has(Constant.BOOKID)){
				bookId=dataObj.getString(Constant.BOOKID);
			}
			//奥数提分宝:确认交卷  ID  1713007(无)
			String challengeId = "";
			if(dataObj.has(Constant.CHALLENGEID)){
				challengeId=dataObj.getString(Constant.CHALLENGEID);
			}
			int challengeRightQuestionCount = 0;
			if(dataObj.has(Constant.CHALLENGERIGHTQUESTIONCOUNT)){
//			challengeRightQuestionCount=dataObj.getString(Constant.CHALLENGERIGHTQUESTIONCOUNT);
				challengeRightQuestionCount=dataObj.getInt(Constant.CHALLENGERIGHTQUESTIONCOUNT);
			}
			int challengeQuestionCount = 0;
			if(dataObj.has(Constant.CHALLENGEQUESTIONCOUNT)){
//			challengeQuestionCount=dataObj.getString(Constant.CHALLENGEQUESTIONCOUNT);
				challengeQuestionCount=dataObj.getInt(Constant.CHALLENGEQUESTIONCOUNT);
			}
			
			String beCommentUserList="";
			if(dataObj.has("beCommentUserList")){
				System.out.println("beCommentUserList:"+beCommentUserList);
				JSONArray jsonArray=dataObj.getJSONArray("beCommentUserList");
				JSONObject jObj=null;
				for(int i=0;i<jsonArray.length();i++){
					jObj=jsonArray.getJSONObject(i);
					if(jObj.has("beCommentUserId")){
						beCommentUserList+=jObj.getString("beCommentUserId");
						if(i<jsonArray.length()){
							beCommentUserList+="\002";
						}
					}
				}
			}
			
			ActionLogInfo alInfo=new ActionLogInfo();
			alInfo.setActId(actId);
			alInfo.setBeUserId(beUserId);
			alInfo.setBeUserCountyId(beUserCountyId);
			alInfo.setBeUserIcon(beUserIcon);
			alInfo.setBeUserName(beUserName);
			alInfo.setBeUserRoleId(beUserRoleId);
			alInfo.setBookId(bookId);
			alInfo.setChallengeId(challengeId);
			alInfo.setChallengeQuestionCount(challengeQuestionCount);
			alInfo.setChallengeRightQuestionCount(challengeRightQuestionCount);
			alInfo.setCityId(cityId);
			alInfo.setCityName(cityName);
			alInfo.setClassId(classId);
			alInfo.setClassName(className);
			alInfo.setGradeId(gradeId);
			alInfo.setCountyId(countyId);
			alInfo.setCountyName(countyName);
			alInfo.setIp(ip);
			alInfo.setModule(module);
			alInfo.setOriginCode(originCode);
			alInfo.setPostId(postId);
			alInfo.setPostType(postType);
			alInfo.setProvinceId(provinceId);
			alInfo.setProvinceName(provinceName);
			alInfo.setRole(role);
			alInfo.setSchoolId(schoolId);
			alInfo.setSchoolName(schoolName);
			alInfo.setSubjectId(subjectId);
			alInfo.setSubjectName(subjectName);
			alInfo.setTeachChooseStudentCount(teachChooseStudentCount);
			alInfo.setTeachType(teachType);
			alInfo.setTime(time);
			alInfo.setUnitId(unitId);
			alInfo.setUnitName(unitName);
			alInfo.setUserIcon(userIcon);
			alInfo.setUserId(userId);
			alInfo.setUserIp(userIp);
			alInfo.setUserName(userName);
			alInfo.setBeCommentUserList(beCommentUserList);
			
			return alInfo;
		} catch (NumberFormatException e) {
			logger.error("", e);
		} catch (JSONException e) {
			logger.error("", e);
		}
		return null;
		
	}
	
	public static void main(String[] args) {
		JSONObject jobj = new JSONObject();
		System.out.println(jobj.getString("a"));
	}

}

 

分享到:
评论

相关推荐

    org.json.JSONObject引用依赖包

    在Java开发中,`org.json.JSONObject` 是一个广泛使用的库,它允许开发者处理JSON对象,进行JSON数据的创建、解析和操作。这个库是`org.json`包的一部分,由Morten Kjetland开发并维护,它提供了一个简单且直观的...

    org.json.JSONObject 包下载

    这个库由Mozilla Public License提供,广泛应用于需要在Java应用中进行JSON解析、生成和操作的场景。JSON是一种轻量级的数据交换格式,因其简洁明了,易于人阅读和编写,同时也方便机器解析和生成,故在Web服务和...

    net.sf.json.JsonObject需要的jar包

    例如,你可以将一个HashMap转换为JSON对象,或者将JSON文本解析为一个包含键值对的Java对象。 为了使用`net.sf.json.JSONObject`,你需要在项目中引入相应的jar包。根据标题和描述,这个压缩包文件可能包含了运行和...

    net.sf.json.JSONObject依赖jar

    在实际开发中,除了`fromObject()`,net.sf.json.JSONObject还提供了许多其他方法,如`get()`, `put()`, `toString()`, `toJSONArray()`等,帮助开发者进行JSON数据的操作和解析。这些功能使得...

    net.sf.json.JSONObject相关jar包.zip

    这个类库是开源项目JSON.org的一部分,用于在Java应用程序中处理JSON(JavaScript Object Notation)数据格式。JSON是一种轻量级的数据交换格式,广泛应用于Web服务和分布式系统中的数据传输。 描述 ...

    com.alibaba.fastjson.JSON , net.sf.json.JSONObject

    它还提供了解析JSON和生成JSON的功能,可以方便地进行JSON操作,例如: 1. 将Java对象转换为JSON字符串: ```java User user = new User(); // 设置user属性... String jsonString = JSON.toJSONString(user); ...

    net.sf.json.JSONObject 依赖的包

    3. **遍历和操作JSON**:`JSONObject` 提供了迭代器接口,可以方便地遍历JSON对象的所有键值对,并对其进行修改或删除。 ```java for (String key : jsonObject.keySet()) { System.out.println("Key: " + key + ...

    net.sf.json.JSONObject依赖库.zip

    JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。 `net.sf.json.JSONObject`是该库中的核心类,它代表了一个JSON对象。这个类提供了一系列的方法来创建、修改和操作JSON对象。例如,...

    net.sf.json.JSONObject Jar包下载

    无论你需要解析接收到的JSON字符串,还是需要将Java对象转化为JSON格式发送出去,"net.sf.json.JSONObject"都提供了强大的工具。 为了使用这个Jar包,你需要将其添加到项目的类路径中。如果你使用的是Maven,可以在...

    用于java对象与json对象间的相互转换(net.sf.json.JSONObject)

    这段代码会将`jsonString`解析成一个`JSONObject`,你可以通过字段名访问其中的数据,如`jsonObject.getString("name")`来获取`name`的值。 ### 2. 将JSON字符串转换为Java对象 `JSONObject`提供了一种将JSON数据...

    net.sf.json.JSONObject实现Object对象与Json字符串的互转

    `JSONObject`可以从一个Java对象创建,也可以解析为一个JSON字符串。例如,我们有一个简单的Java对象: ```java public class User { private String name; private int age; // getters and setters } ``` 要...

    org.json源码及jar包

    `JSONObject`是`org.json`库中的核心类之一,它代表一个JSON对象,允许我们以键值对的形式存储数据。在JSON中,对象被定义为一个由大括号 `{}` 包围的键值对集合。例如: ```json { "name": "John", "age": 30, ...

    新版本org.json的jar包

    org.json库包含了一些核心类,如JSONObject、JSONArray、XML等,它们为JSON对象和数组提供了丰富的操作接口。下面将详细介绍这些核心类以及如何使用它们。 1. JSONObject:这是org.json库的核心类之一,它代表一个...

    net.sf.json.JSONObject对象使用指南

    在Java开发领域,多种库支持JSON的解析和生成,其中`net.sf.json.JSONObject`是较为常用的一种实现。 #### JSON概述 JSON是一种基于文本的数据交换格式,主要包括两种结构:一种是“名称/值”对的集合,另一种是值...

    net.sf.json.JSONObject所需的jar包

    JSON是一种轻量级的数据交换格式,它基于JavaScript的一个子集,易于人阅读和编写,同时也易于机器解析和生成。在Java中,`net.sf.json.JSONObject`库提供了一个方便的工具,帮助我们实现这个转换。 `...

    org.json.JSONObject 一个文件搞定

    `org.json.JSONObject`是Java中一个广泛使用的库,用于处理JSON对象。这个库非常实用,因为它只需要一个文件——`org.json.jar`,就可以实现JSON的序列化和反序列化操作,无需额外安装或引入其他依赖,这大大简化了...

    org.json最新版本jar包(2017.10.18)

    org.json库包含了一系列的Java类和接口,如JSONObject、JSONArray、JSONString、JSONTokener等,它们各自服务于不同的JSON操作需求: 1. **JSONObject**:代表一个JSON对象,类似于Java中的Map。它包含一系列键值对...

    解决net.sf.json.JSONObject

    `JSONObject`是JSON在Java中的表示,它封装了一个HashMap,用于存储键值对。 2. **创建JSONObject** 可以通过构造函数创建一个空的JSONObject,或者直接从一个Map实例转换而来。例如: ```java Map, Object&gt; map...

Global site tag (gtag.js) - Google Analytics