您的位置:首页 > 编程语言 > Java开发

java中解析json多层嵌套

2017-09-27 09:01 393 查看
public Boolean parseField(String result,String image_type,Boolean isError){
JSONObject jsonObject = JSONObject.fromObject(result);

    JSONObject dataJson  = jsonObject.getJSONObject("data");

   

    if(dataJson.size() <= 0){

    JOptionPane.showMessageDialog(null, "识别错误,请重新上传规范图片!", "提示",

          JOptionPane.ERROR_MESSAGE);

    setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

    isError = false;

    return isError;

    }else if(dataJson.size()==1){
toHtml(dataJson.get("detail").toString());

        isError = true;
return isError;
}else{

    JSONArray   dataNames =  dataJson.names();

       
Map<String,String> dataLocal = judgeImageType(image_type);

       

    for(int i = 0 ;i<dataNames.size();i++){

   

    for (String name : dataLocal.keySet()) {

     

       
if(name.equals(dataNames.getString(i))){

       
//小项 如果是JSONArray,则再次循环

       
if(dataJson.get( dataNames.get(i) ) instanceof JSONArray){

       
JSONArray jsonArr = (JSONArray)dataJson.get( dataNames.get(i) ) ;

       
text.append(dataLocal.get(name).toString()+"\n\n");

       
for(int j=0;j<jsonArr.size();j++){

       
JSONObject jsonObj = (JSONObject)jsonArr.get(j);

       
JSONArray childJsonNames = jsonObj.names();

       

       
text.append("          ");

       
for(int m = 0;m<childJsonNames.size();m++){

   

    for(String childName : dataLocal.keySet()){

    if(childName.equals(childJsonNames.getString(m))){

    String childChName = dataLocal.get(childName);

    tex
4000
t.append(childChName+":"+jsonObj.getString(childName)+"   ");

    }

    }

       


       
text.append("\n\n");

       
}

       
}else{//不是json数组

       
System.out.println("--------"+name);

       
if(name.equals("u_sex")&&dataJson.getString(name).equals("1")){

       
text.append("性别 : 男 \n\n");

       
}else if(name.equals("u_sex")&&dataJson.getString(name).equals("2")){

       
text.append("性别 : 女 \n\n");

       
}else{

       
text.append(dataLocal.get(name).toString()+" : "+dataJson.getString(name)+"\n\n");

       
}

       

       


       
}

       
}

                

       
}

    isError = true;

    return isError;

    }

   

   
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: