簡體   English   中英

使用 Object.keys 從 JavaScript 中的 JSON 文件中的值獲取多維數組

[英]Multidimensional array gotten from values in JSON file in JavaScript, using Object.keys

基於問題https://pt.stackoverflow.com/questions/323738/como-incluir-arquivo-json-dentro-de-um-js (葡萄牙語),但他沒有數組而我有一個數組. 我應用了它,但由於缺少他沒有的數組,變量未定義。

您可以測試使用來運行預覽。

我也嘗試應用這些問題:

  1. 獲取json對象的大小
  2. 來自 JSON 對象的多維數組

    • 首先在 HTML 文件中:
  <p id="name">Name 1</p>
  <p id="age">Age 1</p>
  <p id="name">Name 2</p>
  <p id="age">Age 2</p>
  <p id="name">Name 3</p>
  <p id="age">Age 3</p>
  <p id="name">Name 4</p>
  <p id="age">Age 4</p>
  <p id="name">Name 5</p>
  <p id="age">Age 5</p>
  • JSON:
{
  "people": 
  [
    {
      "id": 0,
      "name": "Person Name 0",
      "age": 15
    },
    {
      "id": 1,
      "name": "Person Name 1",
      "age": 25
    },
    {
      "id": 2,
      "name": "Person Name 2",
      "age": 35
    },
    {
      "id": 3,
      "name": "Person Name 3",
      "age": 45
    },
    {
      "id": 4,
      "name": "Person Name 4",
      "age": 55
    },
    {
      "id": 5,
      "name": "Person Name 5",
      "age": 60
    }
  ]
}
  • 基於葡萄牙語的那個問題,例如:
function readTextFile(file, callback) {
  var rawFile = new XMLHttpRequest();
  rawFile.overrideMimeType("application/json");
  rawFile.open("GET", file, true);
  rawFile.onreadystatechange = function() {
      if (rawFile.readyState === 4 && rawFile.status == "200") {
          callback(rawFile.responseText);
      }
  }
  rawFile.send(null);
}

readTextFile("../json/people.json", function(text)
{
  var people = JSON.parse(text);

  var name = document.getElementById('name');
  name.innerHTML = people.name;

  var age = document.getElementById('age');
  age.innerHTML = people.age;

  console.log(people);


});
  • 或者使用Object.keys ,例如:
readTextFile("../json/people.json", function(text){
  var people = JSON.parse(text);

  var name = document.getElementById('name');
  name.innerHTML = Object.keys(people.name).length;

  var age = document.getElementById('age');
  age.innerHTML = Object.keys(people.age).length;

  console.log(people);


});

 function readTextFile(file, callback) { var rawFile = new XMLHttpRequest(); rawFile.overrideMimeType("application/json"); rawFile.open("GET", file, true); rawFile.onreadystatechange = function() { if (rawFile.readyState === 4 && rawFile.status == "200") { callback(rawFile.responseText); } } rawFile.send(null); } readTextFile("https://pastebin.com/raw/CzxURs8y", function(text) { var people = JSON.parse(text); var name = document.getElementById('name'); name.innerHTML = people.name; var age = document.getElementById('age'); age.innerHTML = people.age; console.log(people); });
 <p id="name">Name 1</p> <p id="age">Age 1</p> <p id="name">Name 2</p> <p id="age">Age 2</p> <p id="name">Name 3</p> <p id="age">Age 3</p> <p id="name">Name 4</p> <p id="age">Age 4</p> <p id="name">Name 5</p> <p id="age">Age 5</p>

fetch("../json/people.json")
    .then(r=>r.json())
    .then(json=>{
        const nameElms = Array.from(document.querySelectorAll("[id='name']"));
        const ageElms = Array.from(document.querySelectorAll("[id='age']"));
        nameElms.forEach((n,i)=>{
            const person = json.people[i];
            n.textContent = person.name;
        })
        ageElms.forEach((n,i)=>{
            const person = json.people[i];
            n.textContent = person.age;
        })
    })

暫無
暫無

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

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