Javascript 函数,该函数读取JSON以发送给其他函数以生成输入类型
我有一个读取JSON的函数,但我想将它发送到我的另一个函数以生成输入类型,但我不知道如何进行 var oXHR=新的XMLHttpRequest; oXHR.onreadystatechange=报告状态; oXHR.openGET,文件://:\Users\khaldoun10\Desktop\NewHTMLPROJECT\html dynamic project\json.txt,true; oXHR.send; 功能报告状态{ 如果oXHR.readyState==4{ document.getElementById'showData'.innerHTML=this.responseText; } } objs.forEachfunctionobjs{ 对于objs中的var k{ 如果对象的objs[k]实例{ 常量formItem=objs[k]; var elmn=document.createElementobjs[k].type; elmn.textContent=formItem.Text; Object.assignelmn.style{ 位置:'绝对', 颜色:formItem.color, 宽度:formItem.width, 高度:formItem.height, top:formItem.top, 左:formItem.left, fontFamily:formItem.Font.fontName, fontSize:formItem.Font.Font, }; document.getElementById'ColorArea'.appendChildelmn; }否则{ console.log'Else'; }; } }; json对象:Javascript 函数,该函数读取JSON以发送给其他函数以生成输入类型,javascript,json,Javascript,Json,我有一个读取JSON的函数,但我想将它发送到我的另一个函数以生成输入类型,但我不知道如何进行 var oXHR=新的XMLHttpRequest; oXHR.onreadystatechange=报告状态; oXHR.openGET,文件://:\Users\khaldoun10\Desktop\NewHTMLPROJECT\html dynamic project\json.txt,true; oXHR.send; 功能报告状态{ 如果oXHR.readyState==4{ document.
var objs = [{
"Object1": {
"ID": 1,
"type": "input",
"color": "red",
"Text": "DARKDRAGON",
"width": "150px",
"height": "40px",
"top": "15px",
"left": "5px",
"Font": {
"fontName": "tahoma",
"font": "17px"
}
},
"Object2": {
"ID": 2,
"type": "textarea",
"color": "cyan",
"Text": "SPEEDYTIGER",
"width": "150px",
"height": "40px",
"top": "70px",
"left": "5px",
"Font": {
"fontName": "tahoma",
"font": "17px"
}
},
"Object3": {
"ID": 3,
"type": "input",
"color": "blue",
"Text": "AMyesteriousAdults",
"width": "200px",
"height": "40px",
"top": "130px",
"left": "5px",
"Font": {
"fontName": "tahoma",
"font": "17px"
}
},
"Object4": {
"ID": 4,
"type": "button",
"color": "darkorange",
"Text": "AMyesteriousDarkSpeed",
"width": "200px",
"height": "40px",
"top": "190px",
"left": "5px",
"Font": {
"fontName": "tahoma",
"font": "17px"
}
}
}]
您需要将ajax连接到web服务器,或者将JSON作为js对象包含在页面中
您需要检查类型。按钮具有innerHTML,其他输入具有值
所以假设你改变你的想法
function reportStatus() {
if (oXHR.readyState == 4) {
document.getElementById('showData').innerHTML = this.responseText;
}
}
到
那你就可以吃这个了
使用此格式化代码
const format=objs=>{
Object.keysobjs[0]。forEachkey=>{
const formItem=objs[0][key];
const elmn=document.createElementformItem.type;
如果formItem.type==按钮elmn.innerHTML=formItem.Text;
else elmn.value=formItem.Text;
Object.assignelmn.style{
位置:'绝对',
颜色:formItem.color,
宽度:formItem.width,
高度:formItem.height,
top:formItem.top,
左:formItem.left,
fontFamily:formItem.Font.fontName,
fontSize:formItem.Font.Font,
};
document.getElementById'ColorArea'.appendChildelmn;
}
};
格式化的工作示例:
const objs=[{Object1:{ID:1,type:input,color:red,Text:DARKDRAGON,width:150px,height:40px,top:15px,left:5px,Font:{fontName:tahoma,Font:17px},Object2:{ID:2,type:textarea,color:青色,Text:SPEEDYTIGER,width:150px,height:40px,top:70px,left:5px,Font:{fontName:tahoma,Font:17px},Font:17px},Object3:{ID:3,类型:输入,颜色:蓝色,文本:暗红色成人,宽度:200px,高度:40px,顶部:130px,左侧:5px,字体:{fontName:tahoma,字体:17px},对象4:{ID:4,类型:按钮,颜色:暗红色,文本:暗红色,宽度:200px,高度:40px,顶部:190px,左侧:5px,字体:{fontName:tahoma,字体:17px}]
Object.keysobjs[0]。forEachkey=>{
const formItem=objs[0][key];
const elmn=document.createElementformItem.type;
如果formItem.type==按钮elmn.innerHTML=formItem.Text;
else elmn.value=formItem.Text;
Object.assignelmn.style{
位置:'绝对',
颜色:formItem.color,
宽度:formItem.width,
高度:formItem.height,
top:formItem.top,
左:formItem.left,
fontFamily:formItem.Font.fontName,
fontSize:formItem.Font.Font,
};
document.getElementById'ColorArea'.appendChildelmn;
};
你能提出一个合适的问题吗?不是像孩子一样的问题。如果系统提示你在问题中包含更多信息,这是一个信号,表明你需要包含更多信息,而不是一次又一次地重复同一个最小、信息量不大的文本!此外,你似乎在格式化方面遇到了困难-本指南可以帮助你:。你也会从中受益从阅读中,我认为.JSON是一种字符串符号。JSON对象不存在。当你解析JSON时,你会得到一个POJO,简单的旧JavaScript ObjectP.S。技术说明,对file://URL发出AJAX请求可能会给你带来问题。安装一个本地Web服务器,然后向http://localhost 相反,这将工作得更好,也更有效更准确地描述一个生活环境。这并不能回答我们提出的任何问题。如果我们要求你澄清,最好是提供这些问题的答案,而不是再做一个非常模糊的陈述。我们不是无缘无故地问。另外,如果用英语写作对你来说是个问题,请找人帮你翻译ate.ok sry但首先他们给我的错误是不起作用的,但当你发送链接时,我检查了它并使用了脚本我给你的第一个示例需要你做一些工作才能复制到你的脚本中。如果我现在发布的代码符合你的需要,请
function reportStatus() {
if (this.readyState == 4) {
format(JSON.parse(this.responseText));
}
}