【问题标题】:In JavaScript/jQuery, how to retrieve data that has spaces in its name?在 JavaScript/jQuery 中,如何检索名称中包含空格的数据?
【发布时间】:2010-12-24 05:42:04
【问题描述】:

我正在使用 jQuery 的 getJSON 调用检索 JSON。

我的问题是返回的 JSON 中的某些字段中有空格。

如何在不更改源数据的情况下从 JSON 中检索这些值?请参阅下面标有“错误”的行:

$.getJSON(url, null, function(objData) {
  $.each(objData.data, function(i, item) {
    var zip = item.Zip;
    var fname = item.First Name; //ERROR
  });
});

示例 JSON:

jsonp123456789({"data":[{"Zip":"12345","First Name":"Bob"},{"Zip":"23456","First Name":"Joe"},{"Zip":"34567","First Name":"Bill"}]})

谢谢

【问题讨论】:

  • 如果你想将它用作Javascript对象,为什么JSON名称中有空格?
  • 标识符中允许有空格,尴尬但允许。
  • 我知道你能做到。问题是为什么不只使用 FirstName,这样您就可以使用漂亮的干净点语法。
  • 在我的例子中,JSON 数据是由第 3 方提供的。如果我控制数据,我可能会使用 FirstName。

标签: javascript jquery json getjson


【解决方案1】:

数组成员访问表示法也适用于对象。

$.getJSON(url, null, function(objData) {
  $.each(objData.data, function(i, item) {
    var zip = item.Zip;
    var fname = item['First Name'];
  });
});

您可以将它用于任意字符串(那些不是合法标识符的字符串)以及变量。

var fieldName = "First Name";
var fname = item[fieldName];

【讨论】:

    【解决方案2】:
    $.getJSON(url, null, function(objData) {
      $.each(objData.data, function(i, item) {
        var zip = item.Zip;
        var fname = item["First Name"]; //Changed this
      });
    });
    

    使用作为键而不是点符号来引用项目

    【讨论】:

      猜你喜欢
      • 2015-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多