gpt4 book ai didi

javascript - 如何在 Javascript 中访问 JSON 结构的子对象?

转载 作者:行者123 更新时间:2023-11-30 12:48:29 25 4
gpt4 key购买 nike

我需要从 Javascript 中的 JSON 结构中检索信息我先有这个:

<script type="text/javascript">
var jsonfile= '{"products":
{"productInfo1": "test",
"productInfo2": "test" }
}';

var digitalData = JSON.parse(jsonfile);
console.log(digtialData.products.productInfo1);
console.log(digtialData.products.productInfo2);
</script>

我在控制台窗口中得到输出“test”。这很好用。但似乎我需要声明新对象,以便正确使用。据我了解,他们不喜欢这种解决方案。上面说的方法不好.所以我尝试创建一个新脚本。

<script type="text/javascript">
var digitalData = new digitalData();
var product = new digitalData.product();
var productInfo1 = new digitalData.product.productInfo1();
var productInfo1 = new digitalData.product.productInfo2();
productInfo1 = "test";
productInfo2 = "test";
console.debug(digitalData.product.productInfo);
console.debug(digitalData.product.productInfo);
</script>

然后我收到错误:"Uncaught TypeError: undefined is not a function index.php?route=product/product&path=57&product_id=49:265
(匿名函数)”

我尝试了各种变体,并滥用谷歌来找到如何让这项工作的答案。我找到了一些答案,比如让 digitalData.product 工作。但我希望让第三个对象正常工作,并以任何方式将其链接到 1/2 对象(digitalData 和产品)。

有人对如何解决这个问题有建议吗?

最佳答案

不太清楚为什么您对第一种方法有疑问。但是要使用第二种方法,您需要先定义对象,然后才能使用 new

实例化它们
 function DigitalData() {

}

var digitalData = new DigitalData();

然后对于 product 你可以这样做:

 function Product() {

}

digitalData.product = new Product();

但是在 DigitalData 的构造函数中实际实例化它可能更容易,否则,构造函数的意义何在?

 function DigitalData() {
var self = this;
self.product = new Product();
}

var digitalData = new DigitalData();
var product = digitalData.product;

现在 productInfo1 和 2 部分听起来应该是一个数组。所以你可以这样做:

 function ProductInfo(name) {
var self = this;
self.name = name;
}

function Product(arrayofNames) {
var self = this;
self.productInfo = arrayofNames.map(function(n) { new ProductInfo(n); });
}

function DigitalData(arrayofNames) {
var self = this;
self.product = new Product(arrayOfNames);
}

var digitalData = new DigitalData({ "product1","product2" });

console.log(digitalData.product.productInfo[0].name); // logs "product1"

但是如果你不想使用数组,那么:

 function Product() {
var self = this;
self.productInfo1 = new ProductInfo();
self.productInfo2 = new ProductInfo();
}

关于javascript - 如何在 Javascript 中访问 JSON 结构的子对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21782084/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com