Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JSON透视图_Javascript_Json - Fatal编程技术网

Javascript JSON透视图

Javascript JSON透视图,javascript,json,Javascript,Json,假设我有一个JSON文档/JavaScript对象,如下所示: var animal = { "squirrel": "Squirrels belong to a large family of small or medium-sized rodents called the Sciuridae." } 在JavaScript中,这种情况会发生: console.log(animal.squirrel) //Squirrels belong to a large family of sma

假设我有一个JSON文档/JavaScript对象,如下所示:

var animal = {
  "squirrel": "Squirrels belong to a large family of small or medium-sized rodents called the Sciuridae."
}
在JavaScript中,这种情况会发生:

console.log(animal.squirrel) //Squirrels belong to a large family of small or medium-sized rodents called the Sciuridae
假设我想将
rank
对象添加到:

var animal = {
  "squirrel": {   
    "rank": {
      "Kingdom": "Animalia",
      "Phylum": "Chordata",
      "Class": "Mammalia",
      "Order": "Rodentia",
      "Suborder": "Sciuromorpha",
      "Family": "Sciuridae"
    }
  }
}
该等级可以访问,如下所示:

animal.squirrel.rank
但是我仍然希望
animal.squirrel
对象的顶层是包含上述句子的字符串


这可能吗?

这在JSON中是不可能的。然而,在JavaScript中,您可以做一些事情。您可以提供将对象转换为字符串时要使用的
toString
方法:

var animal = {
  "squirrel": {   
    "rank": {
      "Kingdom": "Animalia",
      "Phylum": "Chordata",
      "Class": "Mammalia",
      "Order": "Rodentia",
      "Suborder": "Sciuromorpha",
      "Family": "Sciuridae"
    },
    toString: function() {
      return "Squirrels belong to a large family of small or medium-sized rodents called the Sciuridae.";
    }
  }
};
您还可以使用
字符串
对象:

var animal = {
    squirrel: new String("Squirrels belong to a large family of small or medium-sized rodents called the Sciuridae.")
};

animal.squirrel.rank = {
    "Kingdom": "Animalia",
    "Phylum": "Chordata",
    "Class": "Mammalia",
    "Order": "Rodentia",
    "Suborder": "Sciuromorpha",
    "Family": "Sciuridae"
};

后者的行为更像一个字符串,但它使用一个
string
对象,这有时会让人沮丧,而且通常是不好的做法。

正如其他人所说,这在任何对象上下文中都是不可能的,因此您需要将所有内容作为对象上/中的可访问部分来处理

var animal = {
  "squirrel": {
    "info": "Squirrels belong to a large family of small or medium-sized rodents called the Sciuridae.",
    "rank": {
      ...
    }
  }
}
而且,我想,您可以为共性设置快速访问器

function getAnimalInfo(animalName) {
  if (!animal[animalName]) return "No info for: " + animalName;

  return animal[animalName].info;
}
所以


哦,你比我快一分钟@你可以在这里看到:我喜欢这个。有些东西是干净的。还是希望我能用动物。松鼠。
console.log(getAnimalInfo("squirrel")); //Squirrels belong to a large family of small or medium-sized rodents called the Sciuridae