0

我有以下代码返回一个单对象 JSON 数组,

Imports System.ServiceModel
Imports System.ServiceModel.Activation
Imports System.ServiceModel.Web
Imports System.IO
Imports System.Runtime.Serialization.Json
Imports System.Runtime.Serialization

<ServiceContract(Namespace:="")> _
<AspNetCompatibilityRequirements(RequirementsMode:=AspNetCompatibilityRequirementsMode.Allowed)> _
Public Class MessageService
    <OperationContract()> _
    Public Function GetMessage(Id As Integer) As String
        Dim m As New NewMessage()
        m.Id = 1
        m.Text = "Text test"

        Dim stream As New MemoryStream()
        Dim serializer As New DataContractJsonSerializer(GetType(NewMessage))
        serializer.WriteObject(stream, m)

        serializer.WriteObject(stream, m)

        stream.Position = 0
        Dim streamReader As New StreamReader(stream)
        Return streamReader.ReadToEnd()
    End Function
End Class


<DataContract()> _
Public Class NewMessage
    <DataMember()> _
    Public Id As Integer
    <DataMember()> _
    Public Text As String
End Class

返回的数据是:

{id:1,Text:"TText test"}

如何让它返回:

[{id:1,Text:"Text 1"},{id:2,Text:"Text 2"}]
4

2 回答 2

0

您必须返回类 NewMessage 的数组,或者如果您想返回单个对象,则创建一个具有 NewMessage 数组属性的类并返回该类。

于 2012-05-30T09:28:54.887 回答
0

让它返回

[{id:1,Text:"Text 1"},{id:2,Text:"Text 2"}]

您必须改为将 NewMessage 更改为 List< NewMessage >。DataContractJsonSerializer 将处理其余部分。

于 2012-05-30T15:25:58.310 回答