首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

JQuery库Ajax回到Json对象如果过滤关键字符?

2012-12-29 
JQuery库Ajax返回Json对象如果过滤关键字符???今天碰到一个非常诡异的问题,一直到下午下班都没有解决,花了

JQuery库Ajax返回Json对象如果过滤关键字符???
今天碰到一个非常诡异的问题,一直到下午下班都没有解决,花了半天时间。。

需求是是一个前端的一个tab控件,没点击一个页签,ajax动态获取数据,每个页签都有分页,自己动态输出的。。

如:
全部   部门一   部门二   部门三   部门四………………

今天上午突然出现一个奇怪的问题,就是点击全部的时候,怎么也显示不了数据,后面基本都可以显示出来。。。


一直到晚上,问题大概断定为用户可能输入了英文的转义符号"",回来尝了把,果然,


    protected void Page_Load(object sender, EventArgs e)
    {
        string userName = string.IsNullOrEmpty(Request.QueryString["userName"]) ? "" : Request.QueryString["userName"].ToString();
        int age = string.IsNullOrEmpty(Request.QueryString["age"]) ? 0 : Convert.ToInt32(Request.QueryString["age"]);
        string address = "s;'d\\\\\\"fs;dfk";

        StringBuilder sb = new StringBuilder();
        sb.Append("{");
        sb.AppendFormat(""userName":"{0}","age":"{1}","address":"{2}"", userName, age, address);
        sb.Append("}");

        Response.Write(sb.ToString());
    }



<script type="text/javascript">
    $(function () {
        $.ajax({
            type: "GET",
            url: "Ajax/Demo.aspx",
            data: "userName=qingyun",
            success: function (data) {
                alert("userName=" + data.userName);
                alert("age=" + data.age);
                alert("address=" + decodeURIComponent(data.address));
            },
            error: function (red) {
                alert("error");
            },
            dataType: "json"
        });
    });
</script>


其中需要注意的是:

        sb.Append("{");
        sb.AppendFormat(""userName":"{0}","age":"{1}","address":"{2}"", userName, age, address);
        sb.Append("}");


我想知道,如果用户数据里面包括了很多英文的转义符号"",我该怎么“友好”的显示出来???
[解决办法]
json格式要求之严,又岂是一个\号呀。 手写json是极不明智的, 效率低,而且容易出错。 如果有一个工具给你, 只要你把 List, DataTable 或者对象传过去, 就可以返回一个绝对没有错误的json字符串, 是何等的方便啊。

建议你还是用 newtonsoft.json.dll , 网上一找一大把。



.net 也自带转换工具, 但比上面的那个稍差一点点。

热点排行