Android JSON的解析重组

据说,走向大神的路上少不了发些文章。我就见样学样了。各位莫见笑!


在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;

}

你可能感兴趣的:(Android JSON的解析重组)