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;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,258评论 19 139
  • Correctness AdapterViewChildren Summary: AdapterViews can...
    MarcusMa阅读 8,949评论 0 6
  • 沉默,是我最习惯的状态。
    哪有岁月可回头阅读 202评论 0 0
  • 是什么让你热泪盈眶? 最简单的故事,最动情的朗诵; 怀揣感恩的心对于曾经帮助过我们的人, 一个小小的善举也许能改变...
    小榆儿妈妈阅读 359评论 0 2
  • 第6章 木子宛如 “你们快看,白莲花凋谢了!” 突然,一直沉默的上官筱一声惊叫,打破了众人的沉默。 我,落衡,王腾...
    高白牧阅读 489评论 0 0