繁体   English   中英

使用RestSharp将vb.net类序列化为JSON

[英]Serialize vb.net class into JSON with RestSharp

我正在尝试使用RestSharp( http://restsharp.org/ )发布到一个宁静的API

我的课看起来像这样:

Public Class CreatePostcard
    Public Property [to]() As [To]
    Public Property front() As String
     ...
Public Class [to]
    Public Property address_line1 As string
    Public Property city As String
    ...

我的请求如下所示:

  Dim request = New RestRequest("postcards", Method.POST)
    Dim mm = New CreatePostcard() With {.description = "Test Desc",
        .to = New [To]() With {.name = FirstName & " " & LastName, .address_line1 = Address1, .address_line2 = Address2, .address_city = City, .address_state = State, .address_zip = Zip},
        .from = New From() With {.name = "TestFrom", .address_line1 = "123 Fake St", .address_city = "Bentonville", .address_state = "AK", .address_zip = "90210"},
        .back = BackURL, .front = FrontURL, .message = ""}

    request.AddObject(mm)

    Dim response2 As IRestResponse(Of Postcard) = client.Execute(Of Postcard)(request)

API期望如下所示:

{
  "description": "Demo Postcard job",
  "to": {
    "address_line1": "123 Test Street",
    "address_city": "Mountain View",
    "address_state": "CA",
    "address_zip": "94041",
       },
  "from": {
  "name": "Ami Wang",
  "address_line1": "123 Test Avenue"
      },
  "message": null,
}

但是我实际发送的是:

{
  "to": "MyApp.To",
  "from": "MyApp.From",
  "front": "http://foo",
  "back": "http://foo",
  "message": "",
  "description": "Test"
 }

如何正确序列化对象并将其发送到Restful API?

Visual Studio为json生成必要的类。 在示例json中,只有一个标签“ to”和“ from”的实例

  1. 打开项目Visual Studio
  2. 复制所需的json
  3. 在Visual Studio中->编辑菜单->选择性粘贴->将JSON粘贴为类

尝试下面的代码。 我使用Nuget库中的Json.Net进行测试。

Private Sub TestJson()

    Dim objFromJsonText As String = File.ReadAllText("C:\json.txt")
    Dim obj As Rootobject
    obj = JsonConvert.DeserializeObject(Of Rootobject)(objFromJsonText)

    Dim jsonFromJsonObject = JsonConvert.SerializeObject(obj)

End Sub

Public Class Rootobject
    Public Property description As String
    Public Property [to] As [To]
    Public Property from As From
    Public Property message As Object
End Class

Public Class [To]
    Public Property address_line1 As String
    Public Property address_city As String
    Public Property address_state As String
    Public Property address_zip As String
End Class

Public Class From
    Public Property name As String
    Public Property address_line1 As String
End Class

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM