Ответ json идет с символом новой строки asp.net mvc - PullRequest
1 голос
/ 08 февраля 2011

Привет! Я использую контроллер asp.net MVC для запроса стороннего REST API.

Я получаю ответ, но в нем есть символы новой строки.

{\ n\ "от \": 1, \ n \ "до \": 10, \ n \ "всего \": 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 Ответ

2 голосов
/ 10 мая 2012

Если вы хотите удалить все символы \ n, вы можете удалить новые строки в контроллере, прежде чем отправлять их на просмотр:

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
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...