0

我正在尝试将标识符传递给函数以访问此(非常简化的)json报价对象中的字段“yrhiprice”:

quote: {
        "last": "49.65",
        "FundamentalData": {
          "yrhiprice": "49.77000"
        }
      }

我传递给的函数(我无法编辑)根据我放入表格单元格的数据字段访问这些字段:

<td data-field="last"></td>

和我无法编辑的(非常简化的)函数,它只接受 data-field 属性中的任何内容并将其用作访问对象中字段的键

var name = $elt.data('field');    
var value = (quote[name]) ? (quote[name]) : '---';
$elt.text(value);

所以,我的相当荒谬的问题是:有什么方法可以访问“yrhiprice”字段,即使它只会将其放入第一组括号中?

我试过“FundamentalData["yrhiprice"]”、“FundamentalData.yrhiprice”和“FundamentalData][yrhiprice”,但没有成功。

非常感谢!

4

2 回答 2

0
var name = "FundamentalData";
var val = quote[name];
val = val.yrhiprice; //"49.77000"
于 2013-02-19T19:59:38.687 回答
0

如果您无法编辑该函数并且FundamentalData.yrhiprice不起作用,则可以将对象展平,以便将yrhiprice属性复制到一个级别。显然,这仅在您需要复制的所有属性名称都是唯一的情况下才有效,但即使在这种情况下,您也只需要注意为您的属性添加前缀或后缀以使其唯一。

所以如果你有一个quote对象,你能:

myQuote.FundamentalData_yrhiprice = myQuote.FundamentalData.yrhiprice;

接着:

<td data-field="FundamentalData_yrhiprice">
于 2013-02-19T19:57:01.633 回答