我有一个方法,它接收一个JSON并取出数据并将其分发给各种字符串,这样就可以在一个实体中设置数据并持久化。下面的示例非常简单,但关于20+字段的实际代码,请参阅公共项目createProject(JsonObject jsonInst) {
Projects projectInst = new Projects();
String pId = jsonInst.get("proId").getAsString();
String pName = jsonInst.get("proName").getAsString();
String pStatus = jsonInst.get("proStatus").getAsString();
String pCustId = jsonInst.get("proCustId").getAsString();
String pStartDate = jsonInst.get("proStartDate").getAsString();
...
//Set the entity data
projectInst.setProjectId(pId);
projectInst.setProjectName(pName);
...注意,如果varible剂量在Json中有一个腐蚀条目,则此代码将以空指针异常中断。显然,我需要验证每个参数,然后调用.getAsString()
从可读性的角度来看,什么是最好的方法?我可以为每个参数创建2个变量,例如检查和设置。
if(jsonInst.get("proName")){
String pName = jsonInst.get("proName").getAsString();
}或者我应该等待它的设置
if(!pName.isEmpty()){
projectInst.setName(pName)
}
...您认为哪一个参数是防止错误的最佳参数。如果某件事情是大规模设置的,那么是否有一种方法可以减少我在使用那个varible之前必须编写的代码量?
发布于 2015-06-16 10:22:29
您可以创建一个将字段名作为参数并为该字段返回json值的方法:
private String getJSONData(String field,JsonObject json){
String data=null;
if(json.has(field)){
data=json.get(field).getAsString();
}
return data;
}您可以为每个字段调用此方法:
String pId = getJSONData("proId",jsonInst);通过这种方式,您不仅可以转义NullPointerException,而且可以避免代码重复。
https://stackoverflow.com/questions/30864396
复制相似问题