2012-02-02 121 views
0

当反序列化o时出现错误。 O由许多汽车组成,我试图将它们非传递给oCarsList。我试图将o更改为ByVal o作为列表(汽车)(),但我得到了一个javascript错误。将Json传递给WebMethod

的Javascript

var str2 = JSON.stringify({CarsObject: Cars}); 

    $.ajax({ 
     type: "POST", 
     url: "wsCars.asmx/SetCars", 
     //data: Cars, 
     //data: {"Cars":Cars.toString()}, 
     data: "{o: " + str2 + "}", 
     processData: false, 
     //contentType: "plain/text", 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: function(msg) { 
      alert(msg.d); 

     }, 
     error: function(e) { 
      alert(e); 
     } 
    }); 

VB

Public Function SetCars(ByVal o As Object) As String 
     If o.Count > 0 Then 

      Dim oSerializer As New JavaScriptSerializer 
      Dim oCarsList As New List(Of Cars)() 

      Try 
       oCarsList = oSerializer.DeserializeObject(o) 
      Catch ex As Exception 
      End Try 
     End If 
    End Function 

回答

0

我建议这样做,而不是字符串化运行,那么串联一个JSON元素作为一个字符串。

var str2 = JSON.stringify({o:{CarsObject: Cars}});