如题:要传输的json数据中包含有html数据,请问,如何解决。字符格式的没有问题,比如string strJson="{\"str\":\"AdImages\"}";但是:如果包含了html格式的代码,经过ajax调用后总是提示undefined.
我是这样写的
string strJson="{\"List\":\"<div><p style=\'text-indent\: -18pt;\'\"}"
提示错误undefined恳请有过json经验的前辈赐教,在线等谢谢。。

解决方案 »

  1.   

    你最好编个码吧,比如把html部分base64编码,读取时解码
      

  2.   


    你还没有弄明白 json 的用处, 以及json 与html的区别。json是一种轻量级的数据, 数据。做web开发, 最好是把数据与展现分开的, 也就是数据与展现形式分开。 例如.net里著名的三层架构。html就不是数据了, 可以看成是数据与形式的综合体。 大部分人在做web的ajax开发时, 很喜欢返回html而不是 json,但这不是一种很好的习惯。 当然,你要返回json或者html都可以达到目的。但是返回json与html的综合体,就太不值得了。
    既没有分开数据与形式, 又没有直接构建html, 严谨与方便两方面都没有得到好处。如果你求方便,建议你直接在后台代码里, 把html完全构建好, 前台直接接受。
    $.post("xxx.ashx?y=?",function(html){
        $("#divTest").html(html);
    });如果你求规范,那你还是返回纯正的json,再构建json吧
    $.getJSON("xxx.ashx?y=?",function(json){
        //....
    });
      

  3.   


    谢谢哈。要返回到前台的内容是通过前台页面中的fckeditor编辑器先传到后台,保存到数据库,然后后台读取数据库中的数据,以json的形式再传到前台,可是由于html标签是随机的,所以几乎不可能控制。等到前台的时候,json的语法非常严格,导致不能正常完成设计的需要。有没有方便简洁的方式来完成这一需求。谢谢
      

  4.   

    使用json.net来序列化,不要自己手工写。大多数人手工写的,都是错误百出的。
      

  5.   

    提的问题本身就有问题,要传输的json数据中包含有html数据?html不是数据,基本概念都没有分清
      

  6.   

    你可以写个代码(调用json.net)看看结果:var html = "<div><p style='text-indent: -18pt;'>这是什么?</p>这里多余写个DIV。</div>";
    var js = new JObject();
    js.Add("List", html);
    var strJson = js.ToString();
      

  7.   


    json中某个element的值是html字符串,这是完全可以理解的。
      

  8.   


    如此说来还是可以理解楼主了, 富文本编辑器确实避免不了这个。你可以用 newtonsoft.json.dll 来将list, datatable, 或者一般对象转成json。
    手工转是非常容易出错的。
      

  9.   


    谢谢,我的基础概念是有点问题。有的时候说不太清楚。文章是在fckeditor中添加的,传到后台的时候,就有一堆html标签痛苦。我按照给的思路,自己在试试。谢谢,各位的宝贵时间。结贴
      

  10.   

    对了,再补充一句,就是要保持所编辑页面的样式,不得不把html标签带着。再次感谢。