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

関数を編集できず、機能FundamentalData.yrhipriceしない場合は、オブジェクトをフラット化して、yrhipriceプロパティが 1 レベル上にコピーされるようにすることができます。明らかにこれは、コピーする必要があるすべてのプロパティ名が一意である場合にのみ機能しますが、その場合でも、プロパティを一意にするために、プロパティのプレフィックスまたはサフィックスに注意する必要があります。

オブジェクトがあるquote場合、次のことができますか。

myQuote.FundamentalData_yrhiprice = myQuote.FundamentalData.yrhiprice;

その後:

<td data-field="FundamentalData_yrhiprice">
于 2013-02-19T19:57:01.633 に答える
0
var name = "FundamentalData";
var val = quote[name];
val = val.yrhiprice; //"49.77000"
于 2013-02-19T19:59:38.687 に答える