Danny Lavelle
Danny Lavelle

Reputation: 1

deserializing a json file into a list

I'm trying to deserialise a json file what looks like this

[
   {
      "Name":"Diluc",
      "BaseATK":335,
      "BaseDef":784,
      "BaseHP":12981,
      "BaseCR":"24.2",
      "BaseCD":50
   },
   {
      "Name":"Amber",
      "BaseATK":223,
      "BaseDef":601,
      "BaseHP":9461,
      "BaseCR":"atk%",
      "BaseCD":50
   },
   {
      "Name":"Barbara",
      "BaseATK":159,
      "BaseDef":669,
      "BaseHP":9787,
      "BaseCR":5,
      "BaseCD":50
   },
   {
      "Name":"Beidou",
      "BaseATK":225,
      "BaseDef":648,
      "BaseHP":13050,
      "BaseCR":5,
      "BaseCD":50
   }
]

I am trying to put this information into a list to be used right now i have a class what looks like this

Public Class characterdetails
    Public name As String
    Public baseATK As Integer
    Public baseHP As Integer
    Public baseCR As Double
    Public baseCD As Double

    Public characterlist As List(Of characterdetails)

End Class

and i'm trying to put it into characterlist i'm using json.net and i'm unsure of how to do this

the file path to the json currently is D:\Coursework design\Coursework design\Resources\CharacterValuescollection.json

Upvotes: 0

Views: 101

Answers (1)

David
David

Reputation: 6111

Visual Studio has a cool feature called Paste JSON as Classes that can be found under Edit > Paste Special > Paste JSON as Classes. If you were to do this, then you would get something that looks like the following:

Public Class CharacterDetails
    Public Property Name As String
    Public Property BaseATK As Integer
    Public Property BaseDef As Integer
    Public Property BaseHP As Integer
    Public Property BaseCR As Object
    Public Property BaseCD As Integer
End Class

With this class, you can then serialize the JSON array to a collection of CharacterDetails by using JsonConvert.DeserializeObject (documentation).

Here is an example:

Dim details = JsonConvert.DeserializeObject(Of List(Of CharacterDetails))(json)

Fiddle: https://dotnetfiddle.net/IyLkIY

Upvotes: 1

Related Questions