1

HTML5のWEBSQLからのSELECTクエリの内容を読み込み表示する機能がありました。その関数を再利用したいのですが、取得しているのはJSONオブジェクトの配列であり、それをrows.item()に変換したいので問題があります。

例、私はこのJSON配列を持っています

"retdic":[{"row_index":0,"lname":"Mato","age":26,"gender":"M","pic":"cyborg.jpg","fname":"Shibiru"},
          {"row_index":1,"lname":"Taro","age":30,"gender":"M","pic":"folder_wrench.png","fname":"Ichigo"},
          {"row_index":2,"lname":"Joni","age":27,"gender":"M","pic":"naruto.jpg","fname":"Perez"},
          {"row_index":3,"lname":"Sakura","age":24,"gender":"F","pic":"folder_table.png","fname":"Haruka"},              
          {"row_index":4,"lname":"Naruto","age":20,"gender":"M","pic":"naruto.jpg","fname":"Uzumaki"}]

$result.rows.item() のように変換するにはどうすればよいですか? item() は配列ではありません。配列の場合は、item[] である必要があります。

アップデート

Jeff のアイデアと助けを借りて、その方法を考え出しました。実際の例を見る

4

2 に答える 2

2

配列と item() 関数の唯一の違いは、一方が配列で、もう一方が関数であることです (item() を "$result.rows.item(3) " を使用して 4 行目を取得する) は、非常に単純です。パラメータ i を取り、配列のインデックス i にあるアイテムを返す関数を定義するだけです。そう:

var myItemFunction = function(i) {
     return retdic[i]
}
于 2011-11-30T10:24:57.610 に答える
0

このオブジェクトを変換する必要はありません。次の方法でデータにアクセスできます。

$result.retdic[0].lname // 0 - row number

またはループ内:

var i,item;
for (i in $result.retdic) {
  item = $result.retdic[i];
  console.log(item.fname)
}

PS:必要に応じて、「retdic」キーの名前を「rows」に変更できます。

$res = {"rows":[
  {"name": "a"},
  {"name": "b"},
  {"name": "c"}
]};


var someKey = 'name',
valueOfSomeKey = $res.rows[rowNumberHere][someKey];
于 2011-11-30T10:33:57.610 に答える