org.json.JSOnObjectによるjsonの解析

9505 ワード

詳細
 
 
 
書き方は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