skip to Main Content

I have write the follow code to get the data formated as JSON

{"billNumber":"0003","entityActivityId":572,"customerFullName":"التوكيلات التجارية","customerMobileNumber":"0506436506","customerPreviousBalance":0,"issueDate":"2022-08-16","expireDate":"2022-09-23","billItemList":{"name":"*","quantity":1,"unitPrice":900,"discount":0,"discountType":"FIXED","vat":"0.15"}}

but I want to be as follwoing:

the deferrence is the [] in the details data.

{"billNumber":"0003","entityActivityId":572,"customerFullName":"التوكيلات التجارية","customerMobileNumber":"0506436506","customerPreviousBalance":0,"issueDate":"2022-08-16","expireDate":"2022-09-23","billItemList":[{"name":"*","quantity":1,"unitPrice":900,"discount":0,"discountType":"FIXED","vat":"0.15"}]}

my code is :

dt1 = dt.ToString("yyyy-MM-dd")
        dt2 = dt.AddDays(7).ToString("yyyy-MM-dd")
        Dim b As New billItemList With
        {
        .name = "*",
        .quantity = 1,
        .unitPrice = txtSubTotal.Value,
        .discount = txtDiscountValue.Value,
        .discountType = "FIXED",
        .vat = 0.15
        }

        
        Dim person = New EfaaAPI() With {
        .billNumber = txtInvNo.Value,
        .entityActivityId = 572,
        .customerFullName = CN,
        .customerMobileNumber = txtTelNo.Value,
        .issueDate = dt1,
        .expireDate = dt2,
                     .billItemList = b
         }

        Dim json = JsonConvert.SerializeObject(person)

my class is :

Public Class EfaaAPI


Public Property billNumber As String 'optional
Public Property entityActivityId As Integer
Public Property customerFullName As String
Public Property customerMobileNumber As String
Public Property customerPreviousBalance As Integer
Public Property issueDate As String  'YYYY-MM-DD
Public Property expireDate As String 'YYYY-MM-DD
Public Property billItemList As New billItemList()

End Class

Public Class billItemList
Public Property name As String
Public Property quantity As Integer
Public Property unitPrice As Integer
Public Property discount As Integer
Public Property discountType As String
Public Property vat As String

End Class

any idea regarding this issue ??

2

Answers


  1. try changing :

    Public Class EfaaAPI
    Public Property billNumber As String 'optional
    Public Property entityActivityId As Integer
    Public Property customerFullName As String
    Public Property customerMobileNumber As String
    Public Property customerPreviousBalance As Integer
    Public Property issueDate As String  'YYYY-MM-DD
    Public Property expireDate As String 'YYYY-MM-DD
    Public Property billItemList As New billItemList()
    End Class
    

    to

    Public Class EfaaAPI
    Public Property billNumber As String 'optional
    Public Property entityActivityId As Integer
    Public Property customerFullName As String
    Public Property customerMobileNumber As String
    Public Property customerPreviousBalance As Integer
    Public Property issueDate As String  'YYYY-MM-DD
    Public Property expireDate As String 'YYYY-MM-DD
    Public Property billItemList As New List(Of billItemList)()
    End Class
    

    and try changing :

    Dim person = New EfaaAPI() With {
             .billNumber = txtInvNo.Value,
             .entityActivityId = 572,
             .customerFullName = CN,
             .customerMobileNumber = txtTelNo.Value,
             .issueDate = dt1,
             .expireDate = dt2,
             .billItemList = b 
         }
    

    to :

    Dim person = New EfaaAPI() With {
            .billNumber = "d",
            .entityActivityId = 572,
            .customerFullName = "ss",
            .customerMobileNumber = "ss",
            .issueDate = "ss",
            .expireDate = "ds",
            .billItemList = New List(Of billItemList)({b})
    
           }
    
    Login or Signup to reply.
  2. you need to fix the class

         Public Class EfaaAPI
            // .... another properties
            Public Property billItemList As List(Of billItem)
         End Class
    

    change the name of class

    Public Class billItem
    Public Property name As String
    //.....
    End Class
    

    and code

      Dim b As New List(Of billItem) From
            {
        New billItem With {
          .name = "d",
          .quantity = 572,
         //...
        }
    }
     Dim person = New EfaaAPI With {
            //....
            .expireDate = dt2,
            .billItemList = b
             }
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search