NEO*_*JPK 8 javascript json object
我怎么能使用javascript"从内到外"从服务器API收到的JSON对象?
[
{
"id": 7,
"idAsignacion": 9,
"idPregunta": 4,
"cumplimiento": 1,
"observacionNumeral": 20,
"observacionEscrita": "HOLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"rutaObservacionDocumental": "1/1/1/1/4",
"created_at": "2017-01-31 18:26:44",
"updated_at": "2017-01-31 18:26:44",
"traer_preguntas": {
"id": 4,
"idRequisito": 1,
"ordenPreguntas": 1,
"pregunta": "jojgpofdkñkñdkgñk",
"tecnicaAuditoria": "Observación",
"escrita": 1,
"numeral": 1,
"documental": 1,
"estado": 0,
"created_at": "2017-01-31 15:42:41",
"updated_at": "2017-01-31 15:42:41",
"obtener_requisitos": {
"id": 1,
"ordenRequisito": 1,
"idDimension": 1,
"nombreRequisito": "Requisito uno",
"estado": 0,
"created_at": "2017-01-30 15:19:02",
"updated_at": "2017-01-30 15:19:02",
"obtener_dimensiones": {
"id": 1,
"ordenDimension": 1,
"dimension": "Dimension UNO",
"estado": 0,
"created_at": "2017-01-30 15:18:48",
"updated_at": "2017-01-30 15:18:48"
}
}
}
}
]
Run Code Online (Sandbox Code Playgroud)
"obtener_dimensiones": {
"id": 1,
"ordenDimension": 1,
"dimension": "Dimension UNO",
"estado": 0,
"created_at": "2017-01-30 15:18:48",
"updated_at": "2017-01-30 15:18:48""obtener_requisitos": {
"id": 1,
"ordenRequisito": 1,
"idDimension": 1,
"nombreRequisito": "Requisito uno",
"estado": 0,
"created_at": "2017-01-30 15:19:02",
"updated_at": "2017-01-30 15:19:02",
"traer_preguntas": {
"id": 4,
"idRequisito": 1,
"ordenPreguntas": 1,
"pregunta": "jojgpofdkñkñdkgñk",
"tecnicaAuditoria": "Observación",
"escrita": 1,
"numeral": 1,
"documental": 1,
"estado": 0,
"created_at": "2017-01-31 15:42:41",
"updated_at": "2017-01-31 15:42:41",
{
"id": 7,
"idAsignacion": 9,
"idPregunta": 4,
"cumplimiento": 1,
"observacionNumeral": 20,
"observacionEscrita": "HOLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"rutaObservacionDocumental": "1/1/1/1/4",
"created_at": "2017-01-31 18:26:44",
"updated_at": "2017-01-31 18:26:44",
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
如何将最后一个元素变成第一个元素,依此类推,直到每个"child"属性成为它的原始父元素的父元素?
obj = [{\n "id": 7,\n "idAsignacion": 9,\n "idPregunta": 4,\n "cumplimiento": 1,\n "observacionNumeral": 20,\n "observacionEscrita": "HOLAAAAAAAAAAAAAAAAAAAA",\n "rutaObservacionDocumental": "1/1/1/1/4",\n "created_at": "2017-01-31 18:26:44",\n "updated_at": "2017-01-31 18:26:44",\n "traer_preguntas": {\n "id": 4,\n "idRequisito": 1,\n "ordenPreguntas": 1,\n "pregunta": "jojgpofdk\xc3\xb1k\xc3\xb1dkg\xc3\xb1k",\n "tecnicaAuditoria": "Observaci\xc3\xb3n",\n "escrita": 1,\n "numeral": 1,\n "documental": 1,\n "estado": 0,\n "created_at": "2017-01-31 15:42:41",\n "updated_at": "2017-01-31 15:42:41",\n "obtener_requisitos": {\n "id": 1,\n "ordenRequisito": 1,\n "idDimension": 1,\n "nombreRequisito": "Requisito uno",\n "estado": 0,\n "created_at": "2017-01-30 15:19:02",\n "updated_at": "2017-01-30 15:19:02",\n "obtener_dimensiones": {\n "id": 1,\n "ordenDimension": 1,\n "dimension": "Dimension UNO",\n "estado": 0,\n "created_at": "2017-01-30 15:18:48",\n "updated_at": "2017-01-30 15:18:48"\n }\n }\n }\n}];\n
Run Code Online (Sandbox Code Playgroud)\n\nrd(obj[0])\nnewObj = {}\nkn1 = Object.keys(th[2])\nnewObj[kn1] = th[2][kn1]\nkn2 = Object.keys(th[1])\nnewObj[kn1][kn2] = th[1][kn2]\nkn3 = Object.keys(th[0])\nnewObj[kn1][kn2][kn3] = th[0][kn3]\nnewObj[kn1][kn2][kn3].root = thr\nconsole.log(JSON.stringify([newObj], null, 4));\n\nfunction rd(mo, od) {\n if (typeof(od) === "undefined") {th = {}; od = 0}\n else {od++}\n Object.keys(mo).forEach(function(k) {\n if (typeof(mo[k]) === "object") {\n console.group("depth=" + od + " : " + k + "(" + Object.keys(mo[k]).length + ")");\n rd(mo[k], od)\n console.groupEnd();\n if (typeof(th[od]) === "undefined") th[od] = {}\n th[od][k] = mo[k]\n Object.keys(th[od][k]).forEach(function(ik) {\n if (typeof(th[od][k][ik]) === "object") {\n delete th[od][k][ik]\n }\n })\n } else {\n console.log("depth=" + od + " : " + k)\n if (od === 0) {\n if (typeof(thr) === "undefined") thr = {}\n thr[k] = mo[k]\n }\n }\n });\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n代码的第二部分可以得到很大改进,如果需要,我可以对其进行处理。\n我添加了密钥名称根以使 JSON 有效
\n\n[\n {\n "obtener_dimensiones": {\n "id": 1,\n "ordenDimension": 1,\n "dimension": "Dimension UNO",\n "estado": 0,\n "created_at": "2017-01-30 15:18:48",\n "updated_at": "2017-01-30 15:18:48",\n "obtener_requisitos": {\n "id": 1,\n "ordenRequisito": 1,\n "idDimension": 1,\n "nombreRequisito": "Requisito uno",\n "estado": 0,\n "created_at": "2017-01-30 15:19:02",\n "updated_at": "2017-01-30 15:19:02",\n "traer_preguntas": {\n "id": 4,\n "idRequisito": 1,\n "ordenPreguntas": 1,\n "pregunta": "jojgpofdk\xc3\xb1k\xc3\xb1dkg\xc3\xb1k",\n "tecnicaAuditoria": "Observaci\xc3\xb3n",\n "escrita": 1,\n "numeral": 1,\n "documental": 1,\n "estado": 0,\n "created_at": "2017-01-31 15:42:41",\n "updated_at": "2017-01-31 15:42:41",\n "root": {\n "id": 7,\n "idAsignacion": 9,\n "idPregunta": 4,\n "cumplimiento": 1,\n "observacionNumeral": 20,\n "observacionEscrita": "HOLAAAAAAAAAAAAAAAAAAAA",\n "rutaObservacionDocumental": "1/1/1/1/4",\n "created_at": "2017-01-31 18:26:44",\n "updated_at": "2017-01-31 18:26:44"\n }\n }\n }\n }\n }\n]\n
Run Code Online (Sandbox Code Playgroud)\n