Чтение 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 с "-" чертой

Другие вопросы по тегам