java中解析json多层嵌套

来源:互联网 发布:淘宝商品品牌 编辑:程序博客网 时间:2024/05/18 17:59
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);
    text.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;
    }
   
   
}
原创粉丝点击