We help IT Professionals succeed at work.

Right representation of vb class for json string

102 Views
1 Endorsement
Last Modified: 2018-09-20
Hi,

I have this json request that I want to deserialize to an vb object. The json looks like this:
{
    "PerReg": [
        {
            "AnstNr": "1",
            "EfNamn": "Ljunggren",
            "FoNamn": "Siv",
            "Adress1": "Föreningsgatan 33",
            "Adress2": "",
            "PostNr": "447 34",
            "PostOrt": "VÅRGÅRDA",
            "LandAdr": "",
            "EpostPriv": "",
            "EpostArb": "",
            "Telefon": "0322-21298",
            "Mobil": "",
            "PersNr": "197901049283",
            "Signatur": "SL",
            "Befattning": "VD",
            "AnstDatum": "2001-09-01",
            "Slutat": false,
            "AvgDatum": "1899-12-30",
            "AnstTom": "1899-12-30",
            "Locked": false,
            "KalSchemaAuto": false,
            "UseOBRegel": false,
            "LockOBRegel": false,
            "OBRegelID": "",
            "UseArbSchema": true,
            "ArbSchema": "1",
            "Avdelning": "10",
            "KalUseAttest": true,
            "PerTyp": "LED",
            "AnstForm": "TV",
            "LoneForm": "MÅN",
            "LSSBerPerStart": "1899-12-30",
            "LSSBerPerInt": "",
            "LSSAnnanArbGiv": false,
            "LSSArbGivNamn": "",
            "LSSArbGivOrgnr": "",
            "UseSysGrad": true,
            "SysGrad": 100,
            "VeckArbTid": 40,
            "HelVeckTid": 40,
            "VeckArbDgr": 5,
            "DagArbTid": 8,
            "UtbetBank": "",
            "UtbetClearNr": "8052",
            "UtbetKontoNr": "565827416",
            "UseTimLon": false,
            "ManLon": 52000,
            "TimLon": 0,
            "UseResEnhet1": false,
            "UseResEnhet2": false,
            "UseResEnhet3": false,
            "ResEnhet1": "",
            "ResEnhet2": "",
            "ResEnhet3": "",
            "Kategori": "",
            "Befattningskod": "",
            "NYKKod": "",
            "Fritext1": "",
            "Fritext2": "",
            "Fritext3": "",
            "Fritext4": "",
            "Fritext5": "",
            "UtbetPer": "",
            "PrelSkattTyp": "",
            "SkattTab": 0,
            "SkattKol": 0,
            "UseInforsel": false,
            "Inforsel": 0,
            "Forbehall": 0,
            "UseJamkning": false,
            "Jamkning": "",
            "JamBelopp": 0,
            "InkomstGrans": 0,
            "UseSjuklonFri": false,
            "UseSjuklonKar": false,
            "SjuklonFriFrom": "1899-12-30",
            "SjuklonFriTom": "1899-12-30",
            "SemUseFaktor": false,
            "SemBruFaktor": 1
        }
    ]
}

Open in new window


The class looks like this:
Imports Microsoft.VisualBasic
Imports System.Data
Imports System.Data.SqlClient
Imports Newtonsoft.Json

Public Class Employee

#Region "Properties"
    <JsonProperty("AnstNr")>
    Public Property AnstNr As String

    <JsonProperty("EfNamn")>
    Public Property EfNamn As String

    <JsonProperty("FoNamn")>
    Public Property FoNamn As String

    <JsonProperty("Adress1")>
    Public Property Adress1 As String

    <JsonProperty("Adress2")>
    Public Property Adress2 As String

    <JsonProperty("PostNr")>
    Public Property PostNr As String

    <JsonProperty("PostOrt")>
    Public Property PostOrt As String

    <JsonProperty("LandAdr")>
    Public Property LandAdr As String

    <JsonProperty("EpostPriv")>
    Public Property EpostPriv As String

    <JsonProperty("EpostArb")>
    Public Property EpostArb As String

    <JsonProperty("Telefon")>
    Public Property Telefon As String

    <JsonProperty("Mobil")>
    Public Property Mobil As String

    <JsonProperty("PersNr")>
    Public Property PersNr As String

    <JsonProperty("Signatur")>
    Public Property Signatur As String

    <JsonProperty("Befattning")>
    Public Property Befattning As String

    <JsonProperty("AnstDatum")>
    Public Property AnstDatum As String

    <JsonProperty("Slutat")>
    Public Property Slutat As Boolean

    <JsonProperty("AvgDatum")>
    Public Property AvgDatum As String

    <JsonProperty("AnstTom")>
    Public Property AnstTom As String

    <JsonProperty("Locked")>
    Public Property Locked As Boolean

    <JsonProperty("KalSchemaAuto")>
    Public Property KalSchemaAuto As Boolean

    <JsonProperty("UseOBRegel")>
    Public Property UseOBRegel As Boolean

    <JsonProperty("LockOBRegel")>
    Public Property LockOBRegel As Boolean

    <JsonProperty("OBRegelID")>
    Public Property OBRegelID As String

    <JsonProperty("UseArbSchema")>
    Public Property UseArbSchema As Boolean

    <JsonProperty("ArbSchema")>
    Public Property ArbSchema As String

    <JsonProperty("Avdelning")>
    Public Property Avdelning As String

    <JsonProperty("KalUseAttest")>
    Public Property KalUseAttest As Boolean

    <JsonProperty("PerTyp")>
    Public Property PerTyp As String

    <JsonProperty("AnstForm")>
    Public Property AnstForm As String

    <JsonProperty("LoneForm")>
    Public Property LoneForm As String

    <JsonProperty("LSSBerPerStart")>
    Public Property LSSBerPerStart As String

    <JsonProperty("LSSBerPerInt")>
    Public Property LSSBerPerInt As String

    <JsonProperty("LSSAnnanArbGiv")>
    Public Property LSSAnnanArbGiv As Boolean

    <JsonProperty("LSSArbGivNamn")>
    Public Property LSSArbGivNamn As String

    <JsonProperty("LSSArbGivOrgnr")>
    Public Property LSSArbGivOrgnr As String

    <JsonProperty("UseSysGrad")>
    Public Property UseSysGrad As Boolean

    <JsonProperty("SysGrad")>
    Public Property SysGrad As Integer

    <JsonProperty("VeckArbTid")>
    Public Property VeckArbTid As Integer

    <JsonProperty("HelVeckTid")>
    Public Property HelVeckTid As Integer

    <JsonProperty("VeckArbDgr")>
    Public Property VeckArbDgr As Integer

    <JsonProperty("DagArbTid")>
    Public Property DagArbTid As Integer

    <JsonProperty("UtbetBank")>
    Public Property UtbetBank As String

    <JsonProperty("UtbetClearNr")>
    Public Property UtbetClearNr As String

    <JsonProperty("UtbetKontoNr")>
    Public Property UtbetKontoNr As String

    <JsonProperty("UseTimLon")>
    Public Property UseTimLon As Boolean

    <JsonProperty("ManLon")>
    Public Property ManLon As Integer

    <JsonProperty("TimLon")>
    Public Property TimLon As Integer

    <JsonProperty("UseResEnhet1")>
    Public Property UseResEnhet1 As Boolean

    <JsonProperty("UseResEnhet2")>
    Public Property UseResEnhet2 As Boolean

    <JsonProperty("UseResEnhet3")>
    Public Property UseResEnhet3 As Boolean

    <JsonProperty("ResEnhet1")>
    Public Property ResEnhet1 As String

    <JsonProperty("ResEnhet2")>
    Public Property ResEnhet2 As String

    <JsonProperty("ResEnhet3")>
    Public Property ResEnhet3 As String

    <JsonProperty("Kategori")>
    Public Property Kategori As String

    <JsonProperty("Befattningskod")>
    Public Property Befattningskod As String

    <JsonProperty("NYKKod")>
    Public Property NYKKod As String

    <JsonProperty("Fritext1")>
    Public Property Fritext1 As String

    <JsonProperty("Fritext2")>
    Public Property Fritext2 As String

    <JsonProperty("Fritext3")>
    Public Property Fritext3 As String

    <JsonProperty("Fritext4")>
    Public Property Fritext4 As String

    <JsonProperty("Fritext5")>
    Public Property Fritext5 As String

    <JsonProperty("UtbetPer")>
    Public Property UtbetPer As String

    <JsonProperty("PrelSkattTyp")>
    Public Property PrelSkattTyp As String

    <JsonProperty("SkattTab")>
    Public Property SkattTab As Integer

    <JsonProperty("SkattKol")>
    Public Property SkattKol As Integer

    <JsonProperty("UseInforsel")>
    Public Property UseInforsel As Boolean

    <JsonProperty("Inforsel")>
    Public Property Inforsel As Integer

    <JsonProperty("Forbehall")>
    Public Property Forbehall As Integer

    <JsonProperty("UseJamkning")>
    Public Property UseJamkning As Boolean

    <JsonProperty("Jamkning")>
    Public Property Jamkning As String

    <JsonProperty("JamBelopp")>
    Public Property JamBelopp As Integer

    <JsonProperty("InkomstGrans")>
    Public Property InkomstGrans As Integer

    <JsonProperty("UseSjuklonFri")>
    Public Property UseSjuklonFri As Boolean

    <JsonProperty("UseSjuklonKar")>
    Public Property UseSjuklonKar As Boolean

    <JsonProperty("SjuklonFriFrom")>
    Public Property SjuklonFriFrom As String

    <JsonProperty("SjuklonFriTom")>
    Public Property SjuklonFriTom As String

    <JsonProperty("SemUseFaktor")>
    Public Property SemUseFaktor As Boolean

    <JsonProperty("SemBruFaktor")>
    Public Property SemBruFaktor As Integer

#End Region

#Region "Constructor"
    Public Sub New()

    End Sub
#End Region

End Class

Public Class Example
    <JsonProperty("PerReg")>
    Public Property Employee As Employee
End Class

Open in new window


When I try to desierialize I get this error:
Newtonsoft.Json.JsonSerializationException: 'Cannot deserialize the current JSON array (e.g. [1,2,3]) into type 'Employee' because the type requires a JSON object (e.g. {"name":"value"}) to deserialize correctly.

Open in new window


I guess it has to do with [ ] that is surrounding each PerReg. How do I represent that in the vb class?

Thanks for help!

Peter
Comment
Watch Question

Project Manager / Technical Lead
CERTIFIED EXPERT
Commented:
This problem has been solved!
(Unlock this solution with a 7-day Free Trial)
UNLOCK SOLUTION
Peter NordbergIT Manager

Author

Commented:
Thanks!

Worked!

Peter

Gain unlimited access to on-demand training courses with an Experts Exchange subscription.

Get Access
Why Experts Exchange?

Experts Exchange always has the answer, or at the least points me in the correct direction! It is like having another employee that is extremely experienced.

Jim Murphy
Programmer at Smart IT Solutions

When asked, what has been your best career decision?

Deciding to stick with EE.

Mohamed Asif
Technical Department Head

Being involved with EE helped me to grow personally and professionally.

Carl Webster
CTP, Sr Infrastructure Consultant
Empower Your Career
Did You Know?

We've partnered with two important charities to provide clean water and computer science education to those who need it most. READ MORE

Ask ANY Question

Connect with Certified Experts to gain insight and support on specific technology challenges including:

  • Troubleshooting
  • Research
  • Professional Opinions