簡體   English   中英

JSON 解析變量結果

[英]JSON parse variable result

我有一個用 xhr 查詢的 JSON。 對象(人)包含一個名為“serviceLevel”的鍵值對,我必須拆分它。

當我把它放在一個變量(服務)中並像這樣記錄它時:

 let main = document.getElementsByTagName('main'); getXHR("GET", './db/orga.json', (success) => { format(success) }, (error) => { console.error(error) }); function format() { let people = arguments[0]; for (let i in people) { let person = people[i]; let services = person.serviceLevel.split("."); console.log(services); console.log(person.serviceLevel.split(".")); let idCard = document.createElement('div'); idCard.id = person.firstName + person.familyName; idCard.classList.add('person'); idCard.innerHTML = "<div class=\\"item nom\\"><span class=\\"prenom\\">" + person.firstName + "</span><span class=\\"famille\\">" + person.familyName + "</span></div>"; idCard.innerHTML += "<span class=\\"job\\">" + person.jobTitle_1 + "</span>"; idCard.innerHTML += "<span class=\\"mail\\"><a href=\\"mailto:" + person.mail + "\\">" + person.mail + "</span>"; idCard.innerHTML += "<span class=\\"tel\\"><a href=\\"tel:" + person.phone_1 + "\\">" + person.phone_1 + "</span>"; idCard.innerHTML += "<span class=\\"tel\\"><a href=\\"tel:" + person.mobile + "\\">" + person.mobile + "</span>"; for (let j in services) { let serviceElement = document.getElementById(services[j]); if (!serviceElement) { let serviceElement = document.createElement('div'); serviceElement.id = services[j]; serviceElement.classList.add('n' + j, "service"); serviceElement.innerHTML = "<span class=\\"title\\">" + services[j] + "</span>"; if (j == 0) { if (services[services.length - 1] = j) { serviceElement.appendChild(idCard); main[0].appendChild(serviceElement); } } else { let parent = services[j - 1], parentService = document.getElementById(parent); if (services[services.length - 1] = j) { serviceElement.appendChild(idCard); } parentService.appendChild(serviceElement); } } else { serviceElement.appendChild(idCard); } } } } const data = [{ "Tri": "blablablabla, CSMSI.SAFS, n, XXXX, YYYY", "Department": "The best department", "serviceLevel": "CSMSI.SAFS", "organisationLevel": "blablablabla", "rang": "n", "familyName": "XXXX", "firstName": "YYYY", "jobTitle_2": "Directeur", "jobTitle_1": "Directeur", "phone_1": "nn nn nn nn nn", "phone_2": "", "mobile": "nn nn nn nn nn", "mail": "xxxx.yyyy@zzzz.fr", "location": "france" }]; format(data);

結果不同:

(2) ["CSMSI", "SAFS"]
0: "CSMSI"
1: "SAFS"
length: 2

(2) ["CSMSI", "SAFS"]
0: "CSMSI"
1: "1"
length: 2

JavaScript 控制台屏幕截圖

正如我們所見,“服務”的內容是好的,但是當我擴展樹時,第二個鍵值的值為“1”......這是一個問題。 有沒有辦法改變這種情況?

當我使用帶有“經典”(i = 0; i < people.length; i++)的 for 循環時,我沒有問題......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM