Reputation: 1
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
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