Use JToken.CreateReader() and pass JsonSerializer.Populate reader. The reader has returned JTokenReader , which JTokenReader through the previously existing JToken hierarchy instead of serializing to a string and parsing.
Since you noted your c# question, the c# extension method that does the job is used here:
public static class JsonExtensions { public static void Populate<T>(this JToken value, T target) where T : class { using (var sr = value.CreateReader()) { JsonSerializer.CreateDefault().Populate(sr, target);
I think this is the equivalent of VB.NET:
Public Module JsonExtensions <System.Runtime.CompilerServices.Extension> Public Sub Populate(Of T As Class)(value As JToken, target As T) Using sr = value.CreateReader() ' Uses the system default JsonSerializerSettings JsonSerializer.CreateDefault().Populate(sr, target) End Using End Sub End Module
dbc
source share