我有一个返回JSON字符串的MVC控制器。当字符串返回调用jQuery ajax()函数时,字符串采用这种格式:
{\"Data\":{\"@ReportID\":\"8\",\"Parameters\":{\"@DateFrom\":\"8/1/2015\",\"@DateTo\":\"8/31/2015\",\"@VenueIDs\":\"1\",\"@EventTypeIDs\":\"1,10,11\",\"@ReportType\":\"1\",\"@GroupBySubType\":\"False\",\"@GroupByMonth\":\"False\",\"@EventTypes\":\"Concerts,National Touring Division,Booking Agreements\",\"@Venues\":\"MSG - Arena\"}}}
当我收到它时,它看起来像这样:
{\Data\:{\@ReportID\:\8\,\Parameters\:{\@DateFrom\:\8/1/2015\,\@DateTo\:\8/31/2015\,\@VenueIDs\:\1\,\@EventTypeIDs\:\1,10,11\,\@ReportType\:\1\,\@GroupBySubType\:\False\,\@GroupByMonth\:\False\,\@EventTypes\:\Concerts,National Touring Division,Booking Agreements\,\@Venues\:\MSG - Arena\}}}
jQuery不再喜欢它,因为它不会执行:
var obj = $.parseJSON(data);
我正在调用MVC控制器:
$.ajax({
url: "GetSelections",
data: {
json: params
},
contentType: 'application/json;',
dataType: 'text',
type: "GET",
success: function (data) {
var obj = $.parseJSON(data);
},
这里,我正在使用text作为数据类型,因为json错误。
使用文字可以吗?我如何准备返回的JSON,以便jQuery喜欢它?
答案 0 :(得分:-1)
如果您希望返回JSON,那么您还应该将$.ajax
数据类型设置为JSON:
dataType: 'json'
如果你这样做,你甚至不需要$.parseJSON
:
success: function (data) {
var obj = data;
}
就够了