C# 如何将asp.net web服务(ASMX)格式化为上述示例的格式?

C# 如何将asp.net web服务(ASMX)格式化为上述示例的格式?,c#,asp.net,json,web-services,fullcalendar,C#,Asp.net,Json,Web Services,Fullcalendar,我正试图将我的web服务结果JSON格式化为上述示例。 使用此当前格式无法显示我的事件 如果您查看我的输出,您将看到日期格式与示例不同,即使我尝试不使用ToUnixTimespan,并且在每个项目上都有双引号,例如,标题、开始、结束和id 我怎样才能去掉那些双引号并格式化日期和时间 我感谢你为解决我的问题所作的努力 范例 我的输出如下所示 我的班级档案 我的网络服务 我决定和大家分享我最后的密码 再次特别感谢和 我的班级档案 我的Web方法ASMX 讨论了类似的问题。最简单的修复方法是发送ISO

我正试图将我的web服务结果JSON格式化为上述示例。 使用此当前格式无法显示我的事件

如果您查看我的输出,您将看到日期格式与示例不同,即使我尝试不使用ToUnixTimespan,并且在每个项目上都有双引号,例如,标题、开始、结束和id

我怎样才能去掉那些双引号并格式化日期和时间

我感谢你为解决我的问题所作的努力

范例

我的输出如下所示

我的班级档案

我的网络服务


我决定和大家分享我最后的密码

再次特别感谢和

我的班级档案

我的Web方法ASMX


讨论了类似的问题。最简单的修复方法是发送ISO日期。@MikeSmithDev谢谢,但该示例正在格式化insde jQuery脚本,我必须更改insde我的asmx文件的格式。这是我在asmx:System.InvalidCastException内更改时出现的错误:从字符串2015-03-23T08:15:00转换为类型&39;朗和39;无效。-->System.FormatException:输入字符串的格式不正确。我在FullCalendar.js中调用asmx,如下所示:events:calendar.asmx/EventList,正如我提到的,最简单的修复方法是发送ISO日期。日历脚本中的格式只是这个问题的一个演示。答案中包含一个指向另一个SO帖子的链接,该帖子展示了如何完成ISO日期格式设置。@MikeSmithDev,我在尝试此操作时找到了它:System.InvalidCastException:从字符串2015-03-23T08:15:00.0000000转换为键入&39;朗和39;无效。-->System.FormatException:输入字符串的格式不正确。数据正常。问题是它是XML而不是JSON。可能会告诉您如何返回JSON。如果是C设置,也许@MikeSmithDev可以提供帮助。如果不是,我需要查看初始化FC的代码。
 events: [
          {
            title: 'All Day Event',
            start: '2014-11-01'
          },
          {
            title: 'Long Event',
            start: '2014-11-07',
            end: '2014-11-10'
          },
          {
            id: 999,
            title: 'Repeating Event',
            start: '2014-11-09T16:00:00'
          },
          {
            id: 999,
            title: 'Repeating Event',
            start: '2014-11-16T16:00:00'
          },
          {
            title: 'Conference',
            start: '2014-11-11',
            end: '2014-11-13'
          },
          {
            title: 'Meeting',
            start: '2014-11-12T10:30:00',
            end: '2014-11-12T12:30:00'
          },
          {
            title: 'Lunch',
            start: '2014-11-12T12:00:00'
          },
          {
            title: 'Meeting',
            start: '2014-11-12T14:30:00'
          },
          {
            title: 'Happy Hour',
            start: '2014-11-12T17:30:00'
          },
          {
            title: 'Dinner',
            start: '2014-11-12T20:00:00'
          },
          {
            title: 'Birthday Party',
            start: '2014-11-13T07:00:00'
          },
          {
            title: 'Click for Google',
            url: 'http://google.com/',
            start: '2014-11-28'
          }
        ]
[
    {
        "id": 10,
        "start": 1427094900,
        "end": 1427185800,
        "title": "new"
    },
    {
        "id": 11,
        "start": 1426978800,
        "end": 1427065200,
        "title": "hi"
    },
    {
        "id": 12,
        "start": 1427094000,
        "end": 1427181300,
        "title": "hi2"
    },
    {
        "id": 13,
        "start": 1427094900,
        "end": 1427100300,
        "title": "test"
    },
    {
        "id": 14,
        "start": 1427094000,
        "end": 1427184900,
        "title": "Al"
    },
    {
        "id": 15,
        "start": 1427698800,
        "end": 1427710500,
        "title": "CalTest"
    }
]
Public Class CalendarDTO

    Private m_id As Int32
    Public Property id() As Int32
        Get
            Return m_id
        End Get
        Set(ByVal value As Int32)
            m_id = value
        End Set
    End Property

    Private m_Start As Int64
    Public Property start() As Int64
        Get
            Return m_Start
        End Get
        Set(ByVal value As Int64)
            m_Start = value
        End Set
    End Property

    Private m_End As Int64
    Public Property [end]() As Int64
        Get
            Return m_End
        End Get
        Set(ByVal value As Int64)
            m_End = value
        End Set
    End Property


    Private m_Title As String
    Public Property title() As String
        Get
            Return m_Title
        End Get
        Set(ByVal value As String)
            m_Title = value
        End Set
    End Property


    'Private m_allday As String
    'Public Property allDay() As String
    '    Get
    '        Return m_allday
    '    End Get
    '    Set(ByVal value As String)
    '        m_allday = value
    '    End Set
    'End Property
End Class
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.ComponentModel
Imports System.Collections.Generic
Imports System.Data.SqlClient
Imports System.Web.Script.Serialization


<System.Web.Script.Services.ScriptService()> _
<System.Web.Services.WebService(Namespace:="http://someurl/")> _
<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<ToolboxItem(False)> _
Public Class Calendar
    Inherits System.Web.Services.WebService

    <WebMethod()> _
    Public Function EventList() As String


        Dim events As New List(Of CalendarDTO)

        Dim comm1 As SqlCommand
        Dim conn1 As SqlConnection
        Dim reader1 As SqlDataReader
        Dim connectionString1 As String = ConfigurationManager.ConnectionStrings("CalTest").ConnectionString
        conn1 = New SqlConnection(connectionString1)
        comm1 = New SqlCommand("SELECT [id],[title] ,[description],[start] ,[end] ,[allday] FROM [CalTest].[dbo].[event]", conn1)
        conn1.Open()

        reader1 = comm1.ExecuteReader()
        While reader1.Read()


            Dim value As CalendarDTO = New CalendarDTO()

            value.id = reader1("id").ToString()
            value.title = reader1("title").ToString()
            value.start = ToUnixTimespan(reader1("start").ToString())
            value.end = ToUnixTimespan(reader1("end").ToString())

            events.Add(value)

        End While

        reader1.Close()
        conn1.Close()

        Dim js As New System.Web.Script.Serialization.JavaScriptSerializer
        Return js.Serialize(events)
    End Function


    Private Function ToUnixTimespan(ByVal d As DateTime) As Int64
        Dim time As New TimeSpan()
        time = d.ToUniversalTime().Subtract(New DateTime(1970, 1, 1, 0, 0, 0))

        Return CType(Math.Truncate(time.TotalSeconds), Int64)
    End Function

    Private Function FromUnixTimespan(ByVal s As String) As DateTime
        Dim time As DateTime = New DateTime(1970, 1, 1, 0, 0, 0)
        Return time.AddSeconds(s)
    End Function

End Class
Public Class CalendarDTO
    Private m_id As String
    Public Property id() As String
        Get
            Return m_id
        End Get
        Set(ByVal value As String)
            m_id = value
        End Set
    End Property

    Private m_Title As String
    Public Property title() As String
        Get
            Return m_Title
        End Get
        Set(ByVal value As String)
            m_Title = value
        End Set
    End Property

    Private m_Start As String
    Public Property start() As String
        Get
            Return m_Start
        End Get
        Set(ByVal value As String)
            m_Start = value
        End Set
    End Property

    Private m_End As String
    Public Property [end]() As String
        Get
            Return m_End
        End Get
        Set(ByVal value As String)
            m_End = value
        End Set
    End Property

    Private m_allday As String
    Public Property allDay() As String
        Get
            Return m_allday
        End Get
        Set(ByVal value As String)
            m_allday = value
        End Set
    End Property
End Class
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.ComponentModel
Imports System.Collections.Generic
Imports System.Data.SqlClient
Imports System.Web.Script.Serialization
Imports System.ServiceModel.Web


' To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
<System.Web.Script.Services.ScriptService()> _
<System.Web.Services.WebService(Namespace:="http://someurl/")> _
<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<ToolboxItem(False)> _
Public Class Calendar
    Inherits System.Web.Services.WebService

    <WebMethod()> _
    Public Sub EventList()
        'Public Function EventList(ByVal startDate As String, ByVal endDate As String) As String
        ' List to hold events
        Me.Context.Response.ContentType = "application/json; charset=utf-8"

        Dim events As New List(Of CalendarDTO)

        Dim comm1 As SqlCommand
        Dim conn1 As SqlConnection
        Dim reader1 As SqlDataReader
        Dim connectionString1 As String = ConfigurationManager.ConnectionStrings("CalTest").ConnectionString
        conn1 = New SqlConnection(connectionString1)
        comm1 = New SqlCommand("SELECT [id],[title] ,[description],[startdate_event] ,[enddate_event] ,[allday] FROM [CalTest].[dbo].[event]", conn1)
        conn1.Open()


        reader1 = comm1.ExecuteReader()
        While reader1.Read()

            Dim value As CalendarDTO = New CalendarDTO()

            Dim newstartdate As DateTime = reader1("startdate_event").ToString()
            Dim newenddate As DateTime = reader1("enddate_event").ToString()

            value.id = reader1("id").ToString()
            value.title = reader1("title").ToString()
            value.start = newstartdate.ToString("s")
            value.end = newenddate.ToString("s")
            value.allDay = reader1("allday").ToString()

            events.Add(value)
        End While

        reader1.Close()
        conn1.Close()


        Dim jss As New System.Web.Script.Serialization.JavaScriptSerializer()
        Dim strJSON As String = jss.Serialize(events)
        Context.Response.Write(jss.Serialize(events))

    End Sub
End Class
[
    {
        "id": "10",
        "title": "new",
        "start": "2015-03-23T08:15:00",
        "end": "2015-03-24T09:30:00",
        "allDay": ""
    },
    {
        "id": "11",
        "title": "hi",
        "start": "2015-03-22T00:00:00",
        "end": "2015-03-23T00:00:00",
        "allDay": "True"
    },
    {
        "id": "12",
        "title": "hi2",
        "start": "2015-03-23T08:00:00",
        "end": "2015-03-24T08:15:00",
        "allDay": "False"
    },
    {
        "id": "13",
        "title": "test",
        "start": "2015-03-23T08:15:00",
        "end": "2015-03-23T09:45:00",
        "allDay": "False"
    },
    {
        "id": "14",
        "title": "Kevin",
        "start": "2015-03-23T08:00:00",
        "end": "2015-03-24T09:15:00",
        "allDay": "False"
    },
    {
        "id": "15",
        "title": "Home test",
        "start": "2015-03-24T08:15:00",
        "end": "2015-03-25T10:15:00",
        "allDay": "False"
    }
]