使用.net JSON序列化JSON时出现问题



请帮助一个新手-x

我使用jQuery调用.net WebAPI来进行Get调用。后端是SQL Server。

在WebAPI中,我使用实体框架来调用存储过程。

 var cat = ent.GetCategories();
 return Json.Encode(cat);

这会获取数据,但在浏览器上,数据看起来是这样的,它不会插入我的下拉列表。我猜这和转义反斜杠有关。我该如何解决这个问题?

"["Housing","Jobs","For Sale","Community","Services"]"

在jQuery.ajax()中,这太简化了。尝试低于

jQuery.ajax({ 
    type: "GET"  //or POST,
    dataType: "json", 
    url: "your url",
    success: function(data) {   
        //data returns ["Housing","Jobs","For Sale","Community","Services"]
    }
}); 

为了一个简单而好的解释,

通过设置dataType: "json",您告诉jQuery解析以JSON形式接收数据,因此数据被传递到success()函数作为Javascript数组

问题是您正在对结果进行双重序列化。Web API为您进行序列化,因此您不需要调用Json.Encode()。相反,只需让API控制器方法返回cat

如果数据像"["Housing","Jobs","For Sale","Community","Services"]"一样返回,那么在填充下拉列表之前可以执行以下操作:

var escaped = "["Housing","Jobs","For Sale","Community","Services"]";
var result = $("<div />").html(escaped).text();

之后,result将具有以下值"["Housing","Jobs","For Sale","Community","Services"]"

然后,您可以调用jQuery解析函数来获得一个javascript数组,您可以将其填充到下拉列表中:

var jsArr = $.parseJSON(result);

相关内容

  • 没有找到相关文章

最新更新