ho una servizio che ritorna un Json, ma sicuramente sbaglio qualcosa in quanto lato client mi ritorna l'errore:"invalid json response"

il codice è questo:


codice:
<EnableCors("*", "*", "*")>
<Route("api/sendrequest")>
<System.Web.Script.Services.ScriptService()>
<WebService(Namespace:="http://tempuri.org/")>
<WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)>
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()>
Public Class PetService
    Inherits System.Web.Services.WebService

    <EnableCors("*", "*", "*")>
    <Route("api/sendrequest")>
    <WebMethod>
   Public Function BindMapMarkerJson(CodRazza As String, CodTipologia As String, CodCategAnn As String, DisKM As String, LAT As String, LON As String) As String



        Dim dt As New DataTable()
        Dim lstMarkers As New List(Of MAPS)


        Dim CartellaImmagini As String = ConfigurationManager.AppSettings("CartellaImmagini").ToString


        Dim ObjAnnunci As New clsAnnunci
        dt = ObjAnnunci.GetDTAnnunci(CodRazza, Tipologia, categ, DisKM, LAT, LON)
        ObjAnnunci.ChiudiCOnnessione()
        Dim objMAPS As New MAPS()


        For Each dtrow As DataRow In dt.Rows              
                Dim Img As String = CartellaImmagini + "/" & dtrow("CodAnnuncio") & "/ICO0.jpg"
                objMAPS.Latitudine = dtrow("Latitudine").ToString()
                objMAPS.Longitudine = dtrow("Longitudine").ToString()
                objMAPS.Titolo = dtrow("Titolo").ToString()
                objMAPS.Icona = Img


                lstMarkers.Add(objMAPS)
        Next


        Dim serializer As New Script.Serialization.JavaScriptSerializer()
        Return serializer.Serialize(lstMarkers)
     
    End Function
End Class


Public Class MAPS
    Public Titolo As String
    Public Latitudine As String
    Public Longitudine As String
    Public Icona As String
    ' Public SitoWeb As String
    Public HTML As String
End Class
e ritorna questo:

codice:
"[{""Titolo"":""titolo"",""Latitudine"":""-33.965635"",""Longitudine"":""151.198331"",""Icona"":""IMGAnnunci/10/ICO0.jpg"",""HTML"":null},
{""Titolo"":""titolo"",""Latitudine"":""-33.965635"",""Longitudine"":""151.198331"",""Icona"":""IMGAnnunci/10/ICO0.jpg"",""HTML"":null},
{""Titolo"":""titolo"",""Latitudine"":""-33.965635"",""Longitudine"":""151.198331"",""Icona"":""IMGAnnunci/10/ICO0.jpg"",""HTML"":null},
{""Titolo"":""titolo"",""Latitudine"":""-33.965635"",""Longitudine"":""151.198331"",""Icona"":""IMGAnnunci/10/ICO0.jpg"",""HTML"":null},
{""Titolo"":""titolo"",""Latitudine"":""-33.965635"",""Longitudine"":""151.198331"",""Icona"":""IMGAnnunci/10/ICO0.jpg"",""HTML"":null}]"

già a guardare il Json di ritorno della funzione si capisce che c'è qualcosa che non va, infatti mi imposta 2 apici doppi per ogni valore
è normale ? oppure sbaglio io qualcosa?

d'atronde nella nel juery lato client uso questo, ma dovrebbe essere corretto
codice:
  $(document).ready(function () {
            $.ajax({
                type: "POST",
                contentType: "application/json; charset=utf-8",
                url: "http://localhost:49839/PetService.asmx/BindMapMarkerJson",
                dataType: "json",
                data: JSON.stringify({
                    CodRazza: '',
                    CodTipologia: '',
                    CodCategAnn: '',
                    DisKM: '',
                    LAT: '',
                    LON: ''
                }),
                dataType: "json",
                success: function (tableData) {