js 解析web 服务返回的Json出错

quinear 2011-07-16 07:45:30
环境:asp.net 4.0 web服务(asmx);
返回:
public object Json()
{
return "'{\"name\":\"test\"}'";
}
js 代码:
function resultShow(result) {

var objst = eval("(" + result + ")");
alert(objst.name);
}
测试,显示undefined。
当我把result换成:'{\"name\":\"test\"}'时,可以,求高手帮帮忙。
...全文
146 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
lsw645645645 2011-07-17
  • 打赏
  • 举报
回复

你直接这样不可以吗
return "{'name':'test'}";
用asp.net 么专门有序列化对象为json的类嘛,直接用就行了呀
quinear 2011-07-17
  • 打赏
  • 举报
回复
是我自己拼接字符串时出错了,我拿数据库中某个字段”Address“测试时,发现,字段返回值多了”\r\n“,但是将它输出为html时却在同一行上,所以也很费解。数据查询结果没有问题。
潮起潮落 2011-07-17
  • 打赏
  • 举报
回复
你总共记录有够10条吗
quinear 2011-07-17
  • 打赏
  • 举报
回复
结贴啦,自己拼的字符串,在返回到客户端时,不知道什么原因生成 了一个"\r\n"导致出错。谢谢各位了。
zwj6612 2011-07-17
  • 打赏
  • 举报
回复
var objst = eval("(" + result + ")");
var objst = eval(result);
quinear 2011-07-17
  • 打赏
  • 举报
回复
才知道只有结贴才能散分,暂时还没法结贴,各位见谅。
quinear 2011-07-17
  • 打赏
  • 举报
回复
用2#的方法可以成功,但是我还有一个问题:我将datatable转换成了我现在用的返回字符串的格式,但是出现了个奇怪问题,就是:
当我的string sql = "select top 5 * from Employees";时,测试成功,当我把它换成:
string sql = "select top 10 * from Employees";js就会弹出”未结束的字符串常量“(IE6调试)。
我同样用$get("test").innerHTML = result;可以看到返回的数据结果,就是在调用
var objst = eval("(" + result + ")");语句时出现”未结束的字符串常量“(IE6调试)的错误。
我还尝试了将输出的result字符赋予一个js变量,然后再调用eval函数时就没有错误,所以很困惑。
我知道用其他的js库可以实现,只是为了搞清一个问题,所以还是希望大家能帮帮小弟。
quinear 2011-07-17
  • 打赏
  • 举报
回复
1#试过,不行呀。
豆虫 2011-07-17
  • 打赏
  • 举报
回复
alert下你的resault 另外: return "'{\"name\":\"test\"}'";不觉的别扭么?
潮起潮落 2011-07-16
  • 打赏
  • 举报
回复
var objst = result;
直接=
潮起潮落 2011-07-16
  • 打赏
  • 举报
回复
{
return "{\"name\":\"test\"}";
}
inetfuture 2011-07-16
  • 打赏
  • 举报
回复
public object Json()
{
string value = "val";
return "{name: test,key: " + value + "}";
}

52,797

社区成员

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

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