Android JSON的解析重組

據(jù)說,走向大神的路上少不了發(fā)些文章。我就見樣學(xué)樣了。各位莫見笑!


在Android使用時(shí)經(jīng)常會(huì)把Json解析出來然后修改或者添加數(shù)據(jù)之后重新組裝

思路很簡(jiǎn)單 1:先看有幾層 ?需要改第幾層的。解析不用說,肯定都會(huì)。不會(huì)自行百度去。

2:把用來修改的數(shù)據(jù)以map形式傳進(jìn)來

并且遍歷map后

if(jsonObj.has("default")) {

if(defaultt.equals("")){

jsonObj.put("default", zhenShiZhi);

}

}這樣就可以去替換了 ? ? 下邊的msg是我打印josn用的 ?沒別的實(shí)際用處.



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;

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,551評(píng)論 19 139
  • Correctness AdapterViewChildren Summary: AdapterViews can...
    MarcusMa閱讀 9,052評(píng)論 0 6
  • 沉默,是我最習(xí)慣的狀態(tài)。
    哪有歲月可回頭閱讀 203評(píng)論 0 0
  • 是什么讓你熱淚盈眶? 最簡(jiǎn)單的故事,最動(dòng)情的朗誦; 懷揣感恩的心對(duì)于曾經(jīng)幫助過我們的人, 一個(gè)小小的善舉也許能改變...
    小榆兒媽媽閱讀 412評(píng)論 0 2
  • 第6章 木子宛如 “你們快看,白蓮花凋謝了!” 突然,一直沉默的上官筱一聲驚叫,打破了眾人的沉默。 我,落衡,王騰...
    高白牧閱讀 521評(píng)論 0 0

友情鏈接更多精彩內(nèi)容