解决方案 »

  1.   


    我这个例子,s已经直接赋值了,还要alert干什么?
      

  2.   

    s是字符串 值为"[{"a":"aa","b":"bbb"},{"a1":"<a href="#">dd</a>"}]" 这串json格式是错误的
    序列化json的时前后不要加引号
    直接用 var s=[{"a":"aa","b":"bbb"},{"a1":"<a href=\"#\">dd</a>"}]
      

  3.   

    var s = '[{"a":"aa","b":"bbb"},{"a1":"<a href=\\\"#\\\">dd</a>"}]';
    JSON.parse(s)
    你不仅要对"转移,还要对\转移,所以要3个\
      

  4.   


    关键是这个值是后台返回的。 使用Newtonsoft.Json中的JsonConvert.SerializeObject()方法的。我不可能去修改。再说var s = '[{"a":"aa","b":"bbb"},{"a1":"<a href=\"#\">dd</a>"}]';这个在一些在线解析json的网站上,是可以正常解析的。说明格式是没有错误的
      

  5.   


    关键是这个值是后台返回的。 使用Newtonsoft.Json中的JsonConvert.SerializeObject()方法的。我不可能去修改。再说var s = '[{"a":"aa","b":"bbb"},{"a1":"<a href=\"#\">dd</a>"}]';这个在一些在线解析json的网站上,是可以正常解析的。说明格式是没有错误的那你就不要在外面再加单引号了,直接var s = <%=aaa%>;这个s就已经是json了。
    另外,你说的[{"a":"aa","b":"bbb"},{"a1":"<a href=\"#\">dd</a>"}]在网上上解析是可以的,那是因为你输入了这样的文字进去,他取那个输入框的value的时候,浏览器会自行把\加上转义符。
    只是你看value的时候是一个字符串,字符串里面是看不见转义符的。
      

  6.   

    这是返回的数据:
    [{"a":"aa","b":"bbb"},{"a1":"<a href="#">dd</a>"}]
    从数据里面看,使用eval时 在a标签中 [{"a":"aa","b":"bbb"},{"a1":"<a href="就这样断开了。
    所以要使用转义,但是如果直接使用 \" 转义后也会变成 单引号 " 在使用eval解析时还是会出错。你可以先把 “ 去掉。然后 eval
      

  7.   

    var s = '[{"a":"aa","b":"bbb"},{"a1":"<a href=\\"#\\">dd</a>"}]';
    alert(s);
    o = JSON.parse(s.replace(/\\\"/, '\\"'));
    alert(JSON.stringify(o));
    alert(o[1].a1)
      

  8.   

    JSON.parse('[{"a":"aa","b":"bbb"},{"a1":"<a href=\\\"#\\\">dd</a>"}]')
      

  9.   

    小哥不要太纠结,我来告诉你,在html中属性用单引号来包裹也是可以的,所以可以钻个空子[{"a":"aa","b":"bbb"},{"a1":"<a href='#'>dd</a>"}]
    这样不就可以了吗
      

  10.   

    或者你只是想给A变现的text赋值的话,没必要吧整个A标签放到json串中,只把A标签的text放到json串中,等你解析的时候,解析到A标签中就可以了,想一个变通的办法去解决就可以了嘛
      

  11.   

    换个思路吧—— 既然用了json, 就不要返回html了