How to determine whether a JSONObject contains a certain key in Java?
Judge whether a certain Key exists in JSONObject
JSONObject jsonObj = new JSONObject(); jsonObj.put("version", "1.0.0"); // 版本号 jsonObj.put("encoding", "UTF-8"); // 编码方式
Judge whether the vesion attribute exists in jsonObject
jsonObj.has("version"); // 返回true
Check whether the key exists in the json string
Original intention, due to work needs, the two units need interface data docking. Unit one needs to send a json data string to unit two. However, the fields in the json data sent by unit one are uncertain. They explained that the customer entered the data on the system. For those fields, they will bring those fields, and for those fields that customers do not enter, they will not bring them by default. Unit one requires unit two, and the default value of this detected field will be empty!
So as unit two, we need to find a way to detect which fields unit one did not bring over. The solution that immediately came to mind at first was to use exception handling, because the program itself reported not found when tested, so it is understandable to use exception handling. . . If you use an exception, after thinking about it, you can only capture not found, and then just leave the captured field blank in finally and it will be ok.
Then the problem comes. I tried the abnormal situation and found that there were too many finallys to deal with; so I thought of using another method, using a containsKey() function of json to determine whether it exists in the json string. This key is whether this field exists; of course, there are other functions that can also be judged, this is based on the json package introduced by yourself.
The following introduces my own situation
The imported jar package is:
First of all, the json package I imported:
import net.sf.json.JSONArray; import net.sf.json.JSONObject;
The code is as follows:
/** * 9903接口解析json数据并且将数据进行入库 * * @author syp * @time 2019年7月3日11:49:02 */ public String dateRepository(String jsonData) { Log4jBean.logger.info("开始处理入库程序!"); ReadConfig.PullConfigXml(); //启动配置文件 DBUtils db = new DBUtils(); JSONObject json=new JSONObject(); String jsonStr=jsonData.substring(44, jsonData.length()); JSONObject jsonObject = JSONObject.fromObject(jsonStr); JSONObject jsonCard=jsonObject.getJSONObject("cardid_info") JSONObject jsonObu = jsonObject.getJSONObject("obu_info"); JSONObject jsonUser=jsonObject.getJSONObject("user_info"); JSONObject jsonCar = jsonObject.getJSONObject("car_info"); //准备将所有json数据信息入开卡集合表ETC_OPEN_CARD_COLLECTION JSONObject jsonAccno = jsonObject.getJSONObject("accno_info"); String allSql = "insert into ETC_OPEN_CARD_COLLECTION(ACCOUNTID,LINKMOBILE,ACCNO_USERNAME,CERTSN,POSID,GENTIME,TRX_SERNO,EMPLOYEEID,ORG_TRX_SERNO,CARD_ID,CARDTYPE,CARD_BRAND,CARD_MODEL,AGENCYID,CARD_USERID,VEHICLEID,ENABLETIME,EXPIRETIME,ISSUEDTYPE,CHANNELID,ISSUEDTIME,CARD_STATUS,STATUSCHANGETIME,CARD_OPERATION,OBU_ID,OBU_BRAND,OBU_MODEL,OBU_USERID,OBU_VEHICLEID,OBU_ENABLETIME,OBU_EXPIRETIME,REGISTEREDTYPE,REGISTEREDCHANNELID,REGISTEREDTIME,INSTALLTYPE,INSTALLCHANNELID,INSTALLTIME,OBU_STATUS,OBU_STATUSCHANGETIME,OBU_OPERATION,USER_ID,USERTYPE,USER_NAME,USERIDTYPE,USERIDNUM,USER_TEL,USER_ADDRESS,USER_REGISTEREDTYPE,USER_CHANNELID,USER_REGISTEREDTIME,DEPARTMENT,AGENTNAME,AGENTIDTYPE,AGENTIDNUM,USER_STATUS,USER_STATUSCHANGETIME,USER_OPERATION,CAR_ID,CAR_TYPE,CAR_USERID,OWNERNAME,OWNERIDTYPE,OWNERIDNUM,OWNERTEL,CAR_ADDRESS,CAR_CONTACT,CAR_REGISTEREDTYPE,CAR_CHANNELID,CAR_REGISTEREDTIME,VEHICLETYPE,VEHICLEMODEL,USECHARACTER,VIN,ENGINENUM,REGISTERDATE,ISSUEDATE,FILENUM,APPROVEDCOUNT,TOTALMASS,MAINTENANCEMASS,PERMITTEDWEIGHT,OUTSIDEDIMENSIONS,PERMITTEDTOWWEIGHT,TESTRECORD,WHEELCOUNT,AXLECOUNT,AXLEDISTANCE,AXISTYPE,CAR_OPERATION) values('" + (jsonAccno.containsKey("accountid")?jsonAccno.getString("accountid"):"") + "','" + (jsonAccno.containsKey("linkmobile")?jsonAccno.getString("linkmobile"):"") + "','" + (jsonAccno.containsKey("username")?jsonAccno.getString("username"):"") + "','" + (jsonAccno.containsKey("certsn")?jsonAccno.getString("certsn"):"") + "','" + (jsonAccno.containsKey("posid")?jsonAccno.getString("posid"):"") + "','" + (jsonAccno.containsKey("gentime")?jsonAccno.getString("gentime"):"") + "','" + (jsonAccno.containsKey("trx_serno")?jsonAccno.getString("trx_serno"):"") + "','" + (jsonAccno.containsKey("employeeid")?jsonAccno.getString("employeeid"):"") + "','" + (jsonAccno.containsKey("org_trx_serno")?jsonAccno.getString("org_trx_serno"):"") + "','" + (jsonCard.containsKey("id")?jsonCard.getString("id"):"") + "','" + (jsonCard.containsKey("cardType")?jsonCard.getString("cardType"):"") + "','" + (jsonCard.containsKey("brand")?jsonCard.getString("brand"):"") + "','" + (jsonCard.containsKey("model")?jsonCard.getString("model"):"") + "','" + (jsonCard.containsKey("agencyId")?jsonCard.getString("agencyId"):"") + "','" + (jsonCard.containsKey("userId")?jsonCard.getString("userId"):"") + "','" + (jsonCard.containsKey("vehicleId")?jsonCard.getString("vehicleId"):"") + "','" + (jsonCard.containsKey("enableTime")?jsonCard.getString("enableTime"):"") + "','" + (jsonCard.containsKey("expireTime")?jsonCard.getString("expireTime"):"") + "','" + (jsonCard.containsKey("issuedType")?jsonCard.getString("issuedType"):"") + "','" + (jsonCard.containsKey("channelId")?jsonCard.getString("channelId"):"") + "','" + (jsonCard.containsKey("issuedTime")?jsonCard.getString("issuedTime"):"") + "','" + (jsonCard.containsKey("status")?jsonCard.getString("status"):"") + "','" + (jsonCard.containsKey("statusChangeTime")?jsonCard.getString("statusChangeTime"):"") + "','" + (jsonCard.containsKey("operation")?jsonCard.getString("operation"):"") + "','" + (jsonObu.containsKey("id")?jsonObu.getString("id"):"") + "','" + (jsonObu.containsKey("brand")?jsonObu.getString("brand"):"") + "','" + (jsonObu.containsKey("model")?jsonObu.getString("model"):"") + "','" + (jsonObu.containsKey("userId")?jsonObu.getString("userId"):"") + "','" + (jsonObu.containsKey("vehicleId")?jsonObu.getString("vehicleId"):"") + "','" + (jsonObu.containsKey("enableTime")?jsonObu.getString("enableTime"):"") + "','" + (jsonObu.containsKey("expireTime")?jsonObu.getString("expireTime"):"") + "','" + (jsonObu.containsKey("registeredType")?jsonObu.getString("registeredType"):"") + "','" + (jsonObu.containsKey("registeredChannelId")?jsonObu.getString("registeredChannelId"):"") + "','" + (jsonObu.containsKey("registeredTime")?jsonObu.getString("registeredTime"):"") + "','" + (jsonObu.containsKey("installType")?jsonObu.getString("installType"):"") + "','" + (jsonObu.containsKey("installChannelId")?jsonObu.getString("installChannelId"):"") + "','" + (jsonObu.containsKey("installTime")?jsonObu.getString("installTime"):"") + "','" + (jsonObu.containsKey("status")?jsonObu.getString("status"):"") + "','" + (jsonObu.containsKey("statusChangeTime")?jsonObu.getString("statusChangeTime"):"") + "','" + (jsonObu.containsKey("operation")?jsonObu.getString("operation"):"") + "','" + (jsonUser.containsKey("id")?jsonUser.getString("id"):"") + "','" + (jsonUser.containsKey("userType")?jsonUser.getString("userType"):"") + "','" + (jsonUser.containsKey("userName")?jsonUser.getString("userName"):"") + "','" + (jsonUser.containsKey("userIdType")?jsonUser.getString("userIdType"):"") + "','" + (jsonUser.containsKey("userIdNum")?jsonUser.getString("userIdNum"):"") + "','" + (jsonUser.containsKey("tel")?jsonUser.getString("tel"):"") + "','" + (jsonUser.containsKey("address")?jsonUser.getString("address"):"") + "','" + (jsonUser.containsKey("registeredType")?jsonUser.getString("registeredType"):"") + "','" + (jsonUser.containsKey("channelId")?jsonUser.getString("channelId"):"") + "','" + (jsonUser.containsKey("registeredTime")?jsonUser.getString("registeredTime"):"") + "','" + (jsonUser.containsKey("department")?jsonUser.getString("department"):"") + "','" + (jsonUser.containsKey("agentName")?jsonUser.getString("agentName"):"") + "','" + (jsonUser.containsKey("agentIdType")?jsonUser.getString("agentIdType"):"") + "','" + (jsonUser.containsKey("agentIdNum")?jsonUser.getString("agentIdNum"):"") + "','" + (jsonUser.containsKey("status")?jsonUser.getString("status"):"") + "','" + (jsonUser.containsKey("statusChangeTime")?jsonUser.getString("statusChangeTime"):"") + "','" + (jsonUser.containsKey("operation")?jsonUser.getString("operation"):"") + "','" + (jsonCar.containsKey("id")?jsonCar.getString("id"):"") + "','" + (jsonCar.containsKey("type")?jsonCar.getString("type"):"") + "','" + (jsonCar.containsKey("userId")?jsonCar.getString("userId"):"") + "','"+ (jsonCar.containsKey("ownerName")?jsonCar.getString("ownerName"):"") + "','"+ (jsonCar.containsKey("ownerIdType")?jsonCar.getString("ownerIdType"):"") + "','"+ (jsonCar.containsKey("ownerIdNum")?jsonCar.getString("ownerIdNum"):"") + "','"+ (jsonCar.containsKey("ownerTel")?jsonCar.getString("ownerTel"):"") + "','"+ (jsonCar.containsKey("address")?jsonCar.getString("address"):"") + "','"+ (jsonCar.containsKey("contact")?jsonCar.getString("contact"):"") + "','"+ (jsonCar.containsKey("registeredType")?jsonCar.getString("registeredType"):"") + "','"+ (jsonCar.containsKey("channelId")?jsonCar.getString("channelId"):"") + "','"+ (jsonCar.containsKey("registeredTime")?jsonCar.getString("registeredTime"):"") + "','"+ (jsonCar.containsKey("vehicleType")?jsonCar.getString("vehicleType"):"") + "','"+ (jsonCar.containsKey("vehicleModel")?jsonCar.getString("vehicleModel"):"") + "','"+ (jsonCar.containsKey("useCharacter")?jsonCar.getString("useCharacter"):"") + "','"+ (jsonCar.containsKey("VIN")?jsonCar.getString("VIN"):"") + "','"+ (jsonCar.containsKey("engineNum")?jsonCar.getString("engineNum"):"") + "','"+ (jsonCar.containsKey("registerDate")?jsonCar.getString("registerDate"):"") + "','"+ (jsonCar.containsKey("issueDate")?jsonCar.getString("issueDate"):"") + "','"+ (jsonCar.containsKey("fileNum")?jsonCar.getString("fileNum"):"") + "','"+ (jsonCar.containsKey("approvedCount")?jsonCar.getString("approvedCount"):"") + "','"+ (jsonCar.containsKey("totalMass")?jsonCar.getString("totalMass"):"") + "','"+ (jsonCar.containsKey("maintenanceMass")?jsonCar.getString("maintenanceMass"):"") + "','"+ (jsonCar.containsKey("permittedWeight")?jsonCar.getString("permittedWeight"):"") + "','"+ (jsonCar.containsKey("outsideDimensions")?jsonCar.getString("outsideDimensions"):"") + "','"+ (jsonCar.containsKey("permittedTowWeight")?jsonCar.getString("permittedTowWeight"):"") + "','"+ (jsonCar.containsKey("testRecord")?jsonCar.getString("testRecord"):"") + "','"+ (jsonCar.containsKey("wheelCount")?jsonCar.getString("wheelCount"):"") + "','"+ (jsonCar.containsKey("axleCount")?jsonCar.getString("axleCount"):"") + "','"+ (jsonCar.containsKey("axleDistance")?jsonCar.getString("axleDistance"):"") + "','"+ (jsonCar.containsKey("axisType")?jsonCar.getString("axisType"):"") + "','"+ (jsonCar.containsKey("operation")?jsonCar.getString("operation"):"") + "')"; int allParam = db.updateMethod(allSql, null); if (allParam > 0) { Log4jBean.logger.info("开卡集合数据写入开卡集合表成功!"); json.put("return_msg", "处理成功!"); json.put("return_code", "0"); } else { Log4jBean.logger.error("开卡集合数据写入开卡集合表失败!"); json.put("return_msg", "处理失败!"); json.put("return_code", "-1"); } return json.toString(); }
As can be seen from the code, each field is processed with the containsKey() function, so there is no need to worry about which field cannot be found in the j'son string sent by the unit. The situation has arrived.
The above is the detailed content of How to determine whether a JSONObject contains a certain key in Java?. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Guide to Square Root in Java. Here we discuss how Square Root works in Java with example and its code implementation respectively.

Guide to Perfect Number in Java. Here we discuss the Definition, How to check Perfect number in Java?, examples with code implementation.

Guide to Random Number Generator in Java. Here we discuss Functions in Java with examples and two different Generators with ther examples.

Guide to Weka in Java. Here we discuss the Introduction, how to use weka java, the type of platform, and advantages with examples.

Guide to the Armstrong Number in Java. Here we discuss an introduction to Armstrong's number in java along with some of the code.

Guide to Smith Number in Java. Here we discuss the Definition, How to check smith number in Java? example with code implementation.

An unpatchable Yubico two-factor authentication key vulnerability has broken the security of most Yubikey 5, Security Key, and YubiHSM 2FA devices. The Feitian A22 JavaCard and other devices using Infineon SLB96xx series TPMs are also vulnerable.All

In this article, we have kept the most asked Java Spring Interview Questions with their detailed answers. So that you can crack the interview.
