Чтение JSON с использованием JavaScript
Данный следующий JSON-файл:
{
"name": "yiisoft/yii2-app-advanced",
"description": "Yii 2 Advanced Project Template",
"keywords": ["yii2", "framework", "advanced", "project template"],
"homepage": "http://www.yiiframework.com/",
"type": "project",
"license": "BSD-3-Clause",
"support": {
"issues": "https://github.com/yiisoft/yii2/issues?state=open",
"forum": "http://www.yiiframework.com/forum/",
"wiki": "http://www.yiiframework.com/wiki/",
"irc": "irc://irc.freenode.net/yii",
"source": "https://github.com/yiisoft/yii2"
},
"minimum-stability": "dev",
"require": {
"php": ">=5.4.0",
"yiisoft/yii2": "~2.0.6",
"yiisoft/yii2-bootstrap": "~2.0.0",
"yiisoft/yii2-swiftmailer": "~2.0.0"
},
"require-dev": {
"yiisoft/yii2-debug": "~2.0.0",
"yiisoft/yii2-gii": "~2.0.0",
"yiisoft/yii2-faker": "~2.0.0",
"codeception/base": "^2.2.3",
"codeception/verify": "~0.3.1"
},
"config": {
"process-timeout": 1800
},
"repositories": [
{
"type": "composer",
"url": "https://asset-packagist.org"
}
]
}
Как считать свойство минимальной устойчивости? Следующий код завершается ошибкой из-за ошибки:qnips_JSON_Loesung.html:112 Uncaught ReferenceError: стабильность не определена
output+="<th class='spalte'>"+daten.minimum-stabilty+"</th></tr>";
Кстати, следующая конструкция работает вполне нормально:
output+="<th class='spalte'>"+daten.keywords+"</th></tr>";
4 ответа
Следующий код решил мою проблему:
for(let j in daten["require-dev"]){
output+="<label> Version "+daten["require-dev"][j]+"<br></label>";
}
Здесь daten.minimum-стабилность путается с этим выражением (то есть daten.minimum - стабилность). Думает вычесть между daten.minimum и стабильностью
Чтобы получить доступ к ключу, который содержит тире или другие символы, которые нельзя использовать в качестве идентификатора, используйте обозначения в скобках, как это
daten["minimum-stabilty"];
Вы пробовали, как это, чтобы получить доступ к ключу JSON, который содержит -
?
var json_with_dash_key = daten["minimum-stabilty"];
output+="<th class='spalte'>"+ json_with_dash_key +"</th></tr>";
- заставляет JavaScript думать, что это расчет.
Либо удалите его при создании файла, либо получите к нему доступ, как к карте.
Использование daten["минимальной стабильности"] должно работать нормально
В более раннем посте также предлагаются другие альтернативы, связанные с этой проблемой: Невозможно получить доступ к свойству JSON с "-" чертой