日期:2014-05-17  浏览次数:20422 次

求教一个关于把json数据从后台传到前台的问题。要传输的数据是html格式
如题:

要传输的json数据中包含有html数据,请问,如何解决。

字符格式的没有问题,比如string strJson="{\"str\":\"AdImages\"}";

但是:如果包含了html格式的代码,经过ajax调用后总是提示undefined.
我是这样写的
string strJson="{\"List\":\"<div><p style=\'text-indent\: -18pt;\'\"}"
提示错误undefined

恳请有过json经验的前辈赐教,在线等谢谢。。。。。

------解决方案--------------------
引用:
如题:

要传输的json数据中包含有html数据,请问,如何解决。

字符格式的没有问题,比如string strJson="{\"str\":\"AdImages\"}";

但是:如果包含了html格式的代码,经过ajax调用后总是提示undefined.
我是这样写的
string strJson="{\"List\":\"<div><p styl……


你还没有弄明白 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){
    //....
});
------解决方案--------------------
使用json.net来序列化,不要自己手工写。

大多数人手工写的,都是错误百出的。
------解决方案--------------------
引用:
引用:引用:如果你求规范,那你还是返回纯正的json,再构建json吧

再构建html

谢谢哈。

要返回到前台的内容是通过前台页面中的fckeditor编辑器先传到后台,保存到数据库,然后后台读取数据库中的数据,以json的形式再传到前台,可是由于html标签是随机的,所以几乎不可能控制。等……


如此说来还是可以理解楼主了, 富文本编辑器确实避免不了这个。

你可以用 newtonsoft.json.dll 来将list, datatable, 或者一般对象转成json。
手工转是非常容易出错的。