你好,我最近一直在使用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字符串上的方括号表明它是一个数组。