JavaScriptSerializer Serialize方法返回输入参数 - 如何防止?

时间:2015-01-22 02:22:12

标签: asp.net json web-services serialization asmx

我有一个返回JSON数据的ASP.NET Web服务(ASMX) - 它使用JavaScriptSerializer的Serialize方法来序列化一个对象并通过jQuery将它返回到调用页面。 问题是它不仅返回请求的JSON数据,还返回JSON字符串中的输入参数。有没有办法防止这种情况发生,或者有人推荐一个更好的序列化程序,它不会将输入参数返回给调用页面?

<WebMethod> _
<ScriptMethod(ResponseFormat:=ResponseFormat.Json)> _
Public Function GetHGResults(startRowIndex As Integer, maximumRows As Integer, sortExpression As String, filterExpression As String, vendor_idx As Integer, manufacturer_idx As Integer, caliber_gauge_bore_idx As Integer, grains_weight As Integer, stock_status As String, search_phrase As String) As String
    HGSearch_Data.DBConnStr = System.Configuration.ConfigurationManager.ConnectionStrings("DefaultConnection").ToString

    Dim retval As List(Of HGSearchResult) = HGSearch_Data.GetLive_ItemsByPageSortOBJ(startRowIndex, maximumRows, sortExpression, filterExpression, vendor_idx, manufacturer_idx, caliber_gauge_bore_idx, grains_weight, stock_status, search_phrase)
    Dim js As New JavaScriptSerializer
    Return js.Serialize(retval)
End Function

示例输出行:

  

{&#34; IDX&#34;:4268,&#34;盖&#34;:&#34; 163F7CA5-0B48-4DCD-8ADE-1EEDA4DC03DC&#34;&#34;供应商&#34 ;: &#34;去   Ammo&#34;,&#34;制造商&#34;:&#34; Wolf Performance&#34;,&#34; caliber_gauge_bore&#34;:&#34; 9mm   马卡罗夫&#34;,&#34; grain_weight&#34;:&#34; 95&#34;,&#34; product_name&#34;:&#34; Wolf 9MM X 18MM马卡罗夫   军事经典95粒全金属全金属外套,1000圆形表壳,   MC918FMJ&#34;&#34; stock_status&#34;:&#34; I&#34;&#34;已更新&#34;:&#34; 224d21h13m&#34;&#34;价格&#34 ;: 200.5000&#34;单元&#34;:&#34;案例&#34;&#34; total_rounds&#34;:1000,&#34; price_per_round&#34;:0.2005,&#34; startRowIndex&#34; :0,&#34; maximumRows&#34;:0,&#34;的SortExpression&#34;:空,&#34; filterExpression&#34;:空,&#34; vendor_idx&#34;:0,&#34 ; ammosection_idx&#34;:0,&#34; manufacturer_idx&#34;:0,&#34; brand_idx&#34;:0,&#34; caliber_gauge_bore_idx&#34;:0,&#34; SEARCH_PHRASE&#34 ;:空}

请注意字符串末尾的输入参数。毫无疑问,为什么MS会将此作为默认行为。

0 个答案:

没有答案