javascript - 访问 .json 文件中的字段

标签 javascript json

我按照这篇文章 ( https://www.visualstudio.com/docs/integrate/extensions/develop/add-dashboard-widget ) 创建一个小部件以将其添加到 Microsoft 仪表板。

在我的 html 文件中,有一段代码我无法运行:

...(some code above)
return TFS_Wit_WebApi.getClient().getRevision(284,6)
                        .then(function (query) {

                            var $list = query.rev;        
                            var $container = $('#query-info-container');
                            $container.empty();
                            $container.append($list);

... (some code below)

在这一行中:

  var $list = query.rev; 

我正在尝试访问 .json 文件“rev”变量。

这是我的 .json 文件

    {
      "count": 15,
      "value": 
      [
        {
          "id": 284,
          "rev": 1,
          "fields": {
            "System.WorkItemType": "User Story",
            "System.State": "New",
            "System.Reason": "New",
            "System.CreatedDate": "2016-06-23T14:31:37.567Z",
         }, 

...(some code below)

我能够访问这个“rev”变量。

但是,现在我想访问“字段”,即

"System.State": "New",

而不是

var $list = query.rev; 

我试过了

var $list = query.fields.System.WorkItemType[0]; 
And 
var $list = query.value.fields[0];
and 
var $list = query.fields; 

但是,这并没有奏效。

这里是一些关于如何访问它的文档

fields: {[key: string]: any}.

但这并没有多大帮助。

任何帮助将不胜感激! 谢谢!

最佳答案

您可以将 JSON 对象用作一种“映射”,这意味着它们由键值对组成。

var $list = query.fields['System.State'];

正如您在问题中已经提到的,访问 JSON 对象属性有许多不同的方式。但是,如果属性的名称中包含点或空格,则需要回退到数组表示法。这意味着以下尝试将产生正确的结果:

  • query.fields
  • 查询[字段]
  • query.fields['System.State']
  • 查询[字段]['System.State']

但是下面的不会:

  • query.fields.System.State
  • 查询[字段].System.State

发生这种情况是因为,在最后两种方式中,JavaScript 会认为您正在尝试访问 query.fields.System 对象的 State 属性(这并不存在)。

这同样适用于具有名称包含空格的属性的对象。以 object['my property'] 的形式访问它们可以,但使用点符号与 object.my property 则不行。

与此相关的其他问题可以在此处查看:

关于javascript - 访问 .json 文件中的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38232485/

相关文章:

javascript - 附加到 JSON 符号?

javascript - Arduino JSON over Serial,Json.Parse 返回意外的 JSON 输入

ios - 从 JSON 图像 url swift 填充 collectionView

php - 使用 PHP 解析 Google 海拔高度的结果

javascript - ajax成功后删除div

javascript - 在 jquery 日期选择器上应用 .ui-datepicker-trigger 类

javascript - 如何在 jimp 中将图像从 png 转换为 jpg?

javascript - 箭头函数和括号

javascript - Bootbox 输入失去对 alt 键的关注

javascript - ReactJS onChange,如果嵌套 hash/json