据说,走向大神的路上少不了发些文章。我就见样学样了。各位莫见笑!
在Android使用时经常会把Json解析出来然后修改或者添加数据之后重新组装
思路很简单 1:先看有几层 需要改第几层的。解析不用说,肯定都会。不会自行百度去。
2:把用来修改的数据以map形式传进来
并且遍历map后
if(jsonObj.has("default")) {
if(defaultt.equals("")){
jsonObj.put("default", zhenShiZhi);
}
}这样就可以去替换了 下边的msg是我打印josn用的 没别的实际用处.
privateJSONObject changeJsonObject(JSONObject jsonObject,Map map) {
String fieldName="",zhenShiZhi ="";
String need="";
String defaultt="";
intfieldSide=0;
intmaxLen=0;
String inputType="";
String fildName="";
String label="";
JSONArray options=null;
String zone="";
JSONObject jieXiJson=null;
try{
jieXiJson=newJSONObject(jsonObject.toString());
JSONArray jsonArray=jieXiJson.getJSONArray("field");
for(inti=0;i
JSONObject jsonObj = (JSONObject) jsonArray.get(i);
if(jsonObj.has("need"))
need = jsonObj.getString("need");
if(jsonObj.has("fieldSide"))
fieldSide = jsonObj.getInt("fieldSide");
if(jsonObj.has("default"))
defaultt = jsonObj.getString("default");
if(jsonObj.has("maxLen"))
maxLen = jsonObj.getInt("maxLen");
if(jsonObj.has("inputType"))
inputType = jsonObj.getString("inputType");
if(jsonObj.has("fieldName"))
fildName = jsonObj.getString("fieldName");
if(jsonObj.has("label"))
label = jsonObj.getString("label");
if(jsonObj.has("options"))
options = jsonObj.getJSONArray("options");
if(jsonObj.has("zone"))
zone = jsonObj.getString("zone");
for(Map.Entry entry:map.entrySet()) {
System.out.println("shujukey= "+ entry.getKey() +" and value= "+ entry.getValue() +"------filedName"+ fildName);
if(fildName.equals(entry.getKey())){
zhenShiZhi= entry.getValue();
break;
}
}
if(jsonObj.has("default")) {
if(defaultt.equals("")){
jsonObj.put("default", zhenShiZhi);
}
}
Logger.i("jsonObj", jsonObj.toString());
}
String msg ="{\"need\":\""+ need +
",\"\"default\":\""+ zhenShiZhi +
",\"\"fieldSide\":"+ fieldSide +
",\"maxLen\":"+ maxLen +
",\"inputType\":\""+ inputType +
",\"\"label\":\""+ label +
",\"\"fildName\":\""+ fildName +
",\"\"options\":"+ options +
",\"\"zone\":\""+ zone +
",\"}";
Logger.i("解析后的JSON", msg);
//
// Logger.i("fieldName+zhengshizhi", fieldName + "------" + zhenShiZhi);
Logger.i("jiexiJson", jieXiJson.toString());
}catch(JSONException e) {
e.printStackTrace();
}
Logger.i("jsonObject最终", jsonObject.toString());
returnjieXiJson;
}