json响应带有换行符asp.net mvc

时间:2011-02-07 23:49:09

标签: jquery asp.net-mvc json

您好 我正在使用asp.net MVC控制器来查询第三方REST API。

我收到了回复,但回复中有换行符。

{\ n \“from \”:1,\ n \“to \”:10,\ n \“total \”:500570,\ n \“currentPage \”:1,\ n ....

我将此返回到视图,由于\ n。

,视图无法读取

我使用以下代码进行调用并获得结果

   public JsonResult Items(string search)
    {

        var client = new WebClient();
        string url = "http://xxxxxxxxxxxxxxx/v1/products?apiKey=xxxxxxxxxx&format=json";


        JsonResult json = Json(client.DownloadString(url), "text/x-json",Encoding.UTF8, JsonRequestBehavior.AllowGet );


        return json;
    } 

在脚本

后面的视图中
<script type="text/javascript">

    $(function () {
        $('#searchlink').click(function () {
            $.getJSON("Item/Items", $("#search").val(), getitems);

        });
    });

    function getitems(responses) {
        alert(responses);

        $.each(responses, function (index, response) {
              // do stuff
        });
    }

</script>

我在这里做错了什么?

1 个答案:

答案 0 :(得分:2)

如果要删除所有\ n字符,可以在将其发送到视图之前删除Controller中的NewLines:

string result=client.DownloadString(url);
result=result.Replace("\r", "").Replace("\n", "\n");

如果你想保留NewLine角色,你必须先在Javascript中逃脱它们 你解析Json:

$.get("Item/Items", $("#search").val(), getitems(data) {
    //Escape \r,\n
    data=data.replace(/\n/g, "\\n").replace(/\r/g, "\\r");
    //and parse Json
    responses=jQuery.parseJSON(data);
    alert(responses);

    $.each(responses, function (index, response) {
          // do stuff
    });
});