月归档:二月 2015

eval转化JSON字符串时经常遇到的问题?

由于Ajax的兴起,JSON这种轻量级的数据格式作为客户端与服务器之间的传输格式逐渐地流行起来,进而出现的问题是如何将服务器端构建好的JSON数据转化为可用的JavaScript对象。利用eval函数无疑是一种简单而直接的方法。在转化的时候需要将JSON字符串的外面包装一层圆括号: var jsonObject = eval(“(” + jsonFormat + “)”); 加上圆括号的目的是迫使eval函数在评估JavaScript代码的时候强制将括号内的表达式(expression)转化为对象,而不是作为语句(statement)来执行。 在使用eval处理json字符串的时候注意事项: 1,使用eval解析json字符串的时候加上括号,以免出现不可预知的错误。 2,json格式的名字部分最好加上引号{“key”:”value”}而不要写成{key:”value”},虽然在javascript里这两种写法都没有问题,一旦这个json字符串是通过服务器程序返回的,并且要通过eval进行转换,名字不带引号容易出问题。所以写json字符串的时候只用第一种写法即可。 3,后台程序返回的json字符串为数组形式的,例如:[{"key1":"values1"},{"key2":"value2"}],eval进行转换的时候不需要加括号。

发表在 Javascript | 标签为 , | 评论关闭