将Java UI JSON对象序列化为HTML代码

将Java UI JSON对象序列化为HTML代码,java,jquery,html,json,serialization,Java,Jquery,Html,Json,Serialization,我需要连接到一个WebService,从中我得到一个包含用户界面定义的JSON对象。唯一的问题是,这个对象包含JavaUI的定义,我需要转换它 它由多个下拉列表组成,如果下拉列表的选项在HIRACHY中有child,则这意味着只有在选择父项时,child才应可见 到目前为止还不错。我无法在JSON中进行迭代,可能要等到一大早了。这是JSON的一部分示例: {"inputConfigId":14580,"children":[{"inputConfigId":14581,"children":[{

我需要连接到一个WebService,从中我得到一个包含用户界面定义的JSON对象。唯一的问题是,这个对象包含JavaUI的定义,我需要转换它

它由多个下拉列表组成,如果下拉列表的选项在HIRACHY中有child,则这意味着只有在选择父项时,child才应可见

到目前为止还不错。我无法在JSON中进行迭代,可能要等到一大早了。这是JSON的一部分示例:

{"inputConfigId":14580,"children":[{"inputConfigId":14581,"children":[{"inputConfigId":14582,"children":[{"inputConfigId":14583,"children":[{"inputConfigId":14584,"children":[{"inputConfigId":14585,"children":[],"type":"LISTBOX_HEADER","value":"Detail","sortOrder":0,"groupId":null}],"type":"LISTBOX_HEADER","value":"Thema","sortOrder":0,"groupId":null}],"type":"LISTBOX_HEADER","value":"Bereich","sortOrder":0,"groupId":null}],"type":"LISTBOX_HEADER","value":"Kontaktgrund","sortOrder":0,"groupId":null},{"inputConfigId":14586,"children":[{"inputConfigId":14587,"children":[{"inputConfigId":14588,"children":[],"type":"LISTBOX_ELEMENT","value":"Anfrage Shop","sortOrder":0,"groupId":null},{"inputConfigId":14589,"children":[],"type":"LISTBOX_ELEMENT","value":"Homepage","sortOrder":1,"groupId":null},{"inputConfigId":14590,"children":[],"type":"LISTBOX_ELEMENT","value":"Öffnungszeiten","sortOrder":2,"groupId":null},{"inputConfigId":14591,"children":[],"type":"LISTBOX_ELEMENT","value":"Postanschrift","sortOrder":3,"groupId":null},{"inputConfigId":14592,"children":[],"type":"LISTBOX_ELEMENT","value":"Rückfrage zu Outbound","sortOrder":4,"groupId":null},{"inputConfigId":14593,"children":[],"type":"LISTBOX_ELEMENT","value":"schriftl. Bestätigung","sortOrder":5,"groupId":null},{"inputConfigId":14594,"children":[],"type":"LISTBOX_ELEMENT","value":"Veranstaltungen","sortOrder":6,"groupId":null}],"type":"LISTBOX_ELEMENT","value":"Allgemeine Anfragen","sortOrder":0,"groupId":null},{"inputConfigId":14595,"children":[{"inputConfigId":14596,"children":[{"inputConfigId":14597,"children":[],"type":"LISTBOX_ELEMENT","value":"AB entspricht nicht Auftrag","sortOrder":0,"groupId":null},{"inputConfigId":14598,"children":[],"type":"LISTBOX_ELEMENT","value":"AB fehlt Info","sortOrder":1,"groupId":null},{"inputConfigId":14599,"children":[],"type":"LISTBOX_ELEMENT","value":"AB ohne Preis","sortOrder":2,"groupId":null},{"inputConfigId":14600,"children":[],"type":"LISTBOX_ELEMENT","value":"Nicht eingegangen","sortOrder":3,"groupId":null}],
我现在尝试构建一个对象,将几个对象类型与html标记关联起来,但现在不知道如何继续。这是我的密码:

 let elHtml = {
    "LAYOUT":{
      type: 'div',
      class: 'col-md-12'
    },
    "LISTBOX_ROW":{
      type: 'div',
      class: 'row'
    },
    "LISTBOX_ELEMENT":{
      type: 'option',
      class: 'form-control'
    },
    "BUTTON_ROW":{
      type: 'div',
      class: 'form-control'
    },
    "INPUTFIELD_ROW":{
      type: 'div',
      class: 'form-control'
    },
     "INPUTFIELDAREA_ROW":{
      type: 'div',
      class: 'form-control'
    },
    "INPUTFIELD":{
      type: 'textarea',
      class: 'form-control'
    }
  }
  let html = '';
  let exDD = [];
  if (typeof kgeObject.children != 'undefined') {
    for (let el of kgeObject.children) {
      if (el.type == "LISTBOX_ROW") {
        html += '<h2>' + el.value + '</h2>';
        if (el.children.length > 0) {
          html += '<select>';
          for (let child of el.children) {
            if(child.type == "LISTBOX_ELEMENT") html += '<option>'+child.value+'</option>';
            if(child.children.length > 0 ){
              let tempHTML = '<select data-showIf='+child.inputConfigId+child.value+'>';
              for(let sChild of child.children){
                if(child.type == "LISTBOX_ELEMENT") tempHTML += '<option>'+sChild.value + '</option>';
              }
              tempHTML += '</select>';
              exDD.push(tempHTML);
            }
          }
          html += '</select>';
        }
      }
    }
  }
  for(let exHtml of exDD){
    html += exHtml;
  }
  return html;
let elHtml={
“布局”:{
类型:“div”,
类别:“col-md-12”
},
“列表框\行”:{
类型:“div”,
类别:“行”
},
“列表框元素”:{
键入:“选项”,
类:“窗体控件”
},
“按钮行”:{
类型:“div”,
类:“窗体控件”
},
“输入字段\行”:{
类型:“div”,
类:“窗体控件”
},
“INPUTFIELDAREA_行”:{
类型:“div”,
类:“窗体控件”
},
“输入字段”:{
键入:“textarea”,
类:“窗体控件”
}
}
让html='';
设exDD=[];
if(kgeObject.children的类型!=“未定义”){
用于(让el代表kgeObject.儿童){
如果(el.type==“列表框\行”){
html+=''+el.value+'';
如果(el.children.length>0){
html+='';
为了(让孩子们成为el.children的孩子){
如果(child.type==“LISTBOX_元素”)html+=''+child.value+'';
如果(child.childrence.length>0){
让tempHTML='';
为了(让孩子的席尔德,孩子们){
if(child.type==“LISTBOX_元素”)tempHTML+=''+sChild.value+'';
}
tempHTML+='';
exDD.push(临时HTML);
}
}
html+='';
}
}
}
}
对于(让exDD的exHtml){
html+=exHtml;
}
返回html;
我希望有人能帮助我或给我任何建议。
谢谢:)

这个问题实际上有点模棱两可。你能解释更多吗?我需要用JSON生成HTML输入元素。应该有包含一个下拉列表的行。如果您选择一个选项,那么根据JSON,将显示另一个下拉列表。问题实际上有点模棱两可。你能解释更多吗?我需要用JSON生成HTML输入元素。应该有包含一个下拉列表的行。如果选择一个选项,则根据JSON,将显示另一个下拉列表。