1

私はduktapeが初めてで、スクリプトファイルから構成を読み取ろうとしています:

var config = 
[
{ ready: true, name: "dev1", on: 8,  off:  9 },
{ ready: true, name: "dev2", on: 10, off: 11 },
{ ready: true, name: "dev3", on: 18, off: 21 },
{ ready: true, name: "dev4", on: 13, off: 17 }
];

duktape には優れたドキュメントがありますが、私が達成しようとしていることの例を見つけることができないようです。

一次元配列を読み取ることができました。(それが最善または適切な方法であるかどうかはわかりません)

// var one_dim = [ "hello", "world", "single", "dimension", "array" ] ;

void init_one_dimension(void) {

  duk_get_prop_string(ctx, -1, "one_dim");

  if(duk_is_array(ctx, -1)) {
    printf("Found array\n");
    duk_enum(ctx, -1, DUK_ENUM_ARRAY_INDICES_ONLY); 

    while (duk_next(ctx, -1 , 0 )) {

      duk_get_prop_index(ctx, -1, 0);
      duk_get_prop_string(ctx, -4, duk_get_string(ctx, -1));
      printf("%s\n", duk_get_string(ctx, -1));
      show_stack(ctx, "STACK");

      duk_pop(ctx); // get_prop_string
      duk_pop(ctx); // get_prop_index
      duk_pop(ctx); // duk_next
    }

    duk_pop(ctx); // duk_enum
    duk_pop(ctx); // duk_get_prop_string
  }
}

多次元配列は私を逃れます。どんな助けでも大歓迎です。

4

1 に答える 1

1

一番上にある「config」オブジェクトは、多次元配列ではなく、辞書を含む配列です。したがって、既にある列挙型コードを使用して、通常のオブジェクト プロパティのようにキー (ready、name など) にアクセスするだけです。

duk_get_prop_string

于 2015-05-04T09:57:31.330 に答える