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[]。

更新

使用杰夫的想法和帮助,我想出了如何去做。查看实时示例

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 回答