您好 我正在使用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>
我在这里做错了什么?
答案 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
});
});