Azure移动服务在VB.Net中将JSON转换为类型



你好,我最近一直在使用Azure移动服务,在解决了一个问题后,我又遇到了另一个问题。我有一个存储过程保存在我的Azure SQL数据库上,然后由我的移动服务上的自定义API调用。

在我的客户端,我可以调用API返回一个JSON令牌(或数组):

Dim result As Linq.JToken = Await App.subtlesoftClient.InvokeApiAsync("test1", 
              System.Net.Http.HttpMethod.Get, Nothing)

然后将其转换为json字符串:

Dim jString As String = result.ToString

这给了我:

{[
  {
    "id": 2,
    "message": "This is another test message cos everything is almost almost great but what can you do eh",
    "messageDate": "2015-05-10T00:00:00Z"
  }
]}

我不知道的是如何把结果传递给我的类:

Public Class test1
    Private _ID As Integer
    Private _MessageDate As Date
    Private _Message As String
    <JsonProperty(PropertyName:="id")>
    Public Property ID As Integer
        Get
            Return _ID
        End Get
        Set(value As Integer)
            _ID = value
        End Set
    End Property
    <JsonProperty(PropertyName:="message")>
    Public Property Message As String
        Get
            Return _Message
        End Get
        Set(value As String)
            _Message = value
        End Set
    End Property
    <JsonProperty(PropertyName:="messageDate")>
    Public Property MessageDate As Date
        Get
            Return _MessageDate
        End Get
        Set(value As Date)
            _MessageDate = value
        End Set
    End Property
End Class

I have try:

Dim myArray = result.Children(Of Linq.JProperty)().
            FirstOrDefault(Function(x) x.Name = "").Value

试着把它放入一个我可以枚举的数组中。这可能会导致错误,因为我没有将名称传递到函数中,因为我的json似乎没有名称。

最终返回json将是多个对象,所以我希望能够将它们传递到MobileServiceCollection(Of MyType),我不知道如何。

好吧,谢谢你给我一些指点,无论如何,看起来最后很容易,不是总是当你弄清楚的时候:

Dim result = Await App.subtlesoftClient.InvokeApiAsync("test1", System.Net.Http.HttpMethod.Get, Nothing)

            Dim jString As String = result.ToString
            Dim myTest = JsonConvert.DeserializeObject(Of List(Of test1))(jString)
 

这个工作得很好,似乎JSON字符串上的方括号表明它是一个数组。

相关内容

  • 没有找到相关文章

最新更新