把字符串转换成JSON对象,然后怎么引用它?

a_lgz 2008-09-15 12:21:06
firebug:
t
-columns Object
0 "fdfds"
1 "fdsfds"

怎样取到t.columns[0]的值.
t.columns.length 返回2
t.columns[0] 返回无定义,报错.

怎么解决啊.
...全文
665 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
JoeBlackzqq 2008-10-11
  • 打赏
  • 举报
回复
我也遇到同样的问题。

如果你请求的dataType是html的话,是需要用var myObject = eval('(' + myJSONtext + ')'); 这种形式的。
但是如果你请求的dataType是json的话,就可以直接用var myObject = myJSONtext;

不信的话,你可以试一下!!
zhihuixiaole 2008-09-16
  • 打赏
  • 举报
回复
xuexi
dh20156 2008-09-16
  • 打赏
  • 举报
回复
參見:

http://www.v-ec.com/jslib/

【Scope Chain And Closure】部分,標簽4

/*
eval不能直接得到一个直接量的对象
因為eval将{}当成了复合语句标识
*/

alert(eval('{name:"MyName"}'));//MyName

/*
复合语句是用逗号运算符将几个语句联合起来,用花括号括起来,形成一个语句块(statement block)。
复合语句允许使用标签,但只允许出现一个,并且出现在整段语句的最开始位置
*/

name:{"MyName",alert('2'),alert('3')}

/*
我们要做的是改变花括号{}在eval中的意义,使它成为一个表达式或值
*/

//通过表达式运算符(),将{name:"MyName"}返回为一个值;
alert(eval('({name:"MyName"})'));

//我们也构造了一个复合语句,使得{name:"MyName"}成为这个复合语句里的一个表达式;
alert(eval('{0,{name:"MyName"}}'));

//可以进一步简化为连续表达式;
alert(eval('0,{name:"MyName"}'));

a_lgz 2008-09-15
  • 打赏
  • 举报
回复
var myJSONObject = {"bindings": [
{"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"},
{"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"},
{"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*"}
]
};
var myObject = eval('(' + myJSONtext + ')');
为什么要个括号?真奇怪...

87,992

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧