Imports System.Collections
Imports System.Collections.Generic
Imports System.Runtime.Serialization.Formatters
Imports System.ComponentModel.DataAnnotations
Imports System.Globalization
Imports System.Reflection
Imports System.Collections.ObjectModel
Imports Newtonsoft.Json.Linq
Imports Newtonsoft.Json.Converters
Imports Newtonsoft.Json.Serialization
Imports Microsoft.VisualBasic
Console.WriteLine("Environment version: {0} ({1})", System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription, GetNetCoreVersion)
Console.WriteLine("version: {0}", GetType(JsonSerializer).Assembly.FullName)
Console.WriteLine("-" & testclass.GetJson() & "-")
TestClass.ShowMemoIssue()
Console.WriteLine("Failed with unhandled exception: ")
Public Function GetNetCoreVersion() As String
Dim assembly = GetType(System.Runtime.GCSettings).GetTypeInfo.Assembly
Dim assemblyPath = assembly.Location.Split(vbcrlf)
Microsoft.VisualBasic.ChrW(47)
Microsoft.VisualBasic.ChrW(92)
Dim netCoreAppIndex As Integer = Array.IndexOf(assemblyPath, "Microsoft.NETCore.App")
If ((netCoreAppIndex > 0) _
AndAlso (netCoreAppIndex _
< (assemblyPath.Length - 2))) Then
Return assemblyPath((netCoreAppIndex + 1))
Dim jsonString = TestClass.GetJson
Dim token = JsonConvert.DeserializeObject(Of JObject)(jsonString)
Console.WriteLine("Deserialized token: ")
Public Shared sub ShowMemoWork()
Dim jsonString = RegularExpressions.Regex.Replace(TestClass.GetJson, "(\bu')", "'")
Console.WriteLine("String to parse {0}", jsonString)
Console.Write("Start of Deserialized memo (work), ")
Dim token = JsonConvert.DeserializeObject(Of NDOrder_order)(jsonString)
Console.WriteLine(token.memo(0))
dim tokenMemo = JsonConvert.DeserializeObject(Of NDOrder_memo)(token.memo(0))
Console.WriteLine("Customer First Name: {0}",tokenMemo.braums.printing_data.customerFirstName)
Public Shared sub ShowMemoIssue()
Dim jsonString = TestClass.GetJson
Console.WriteLine("String to parse {0}", jsonString)
Console.Write("Start of Deserialized memo (Issue), ")
Dim token = JsonConvert.DeserializeObject(Of NDOrder_order)(jsonString)
Console.WriteLine(token.memo(0))
dim tokenMemo = JsonConvert.DeserializeObject(Of NDOrder_memo)(token.memo(0))
Console.WriteLine("Customer First Name: {0}",tokenMemo.braums.printing_data.customerFirstName)
Public Shared Function GetJson() As String
"""{u'braums': {u'printing_data': {u'customerFirstName': u'xxxxxx', u'orderNumber': 4495, u'customerLastName': u'xxxxxx', u'num_refrigerated_labels': 1, u'num_dry_labels': 1, u'packedBy': u'xxxxxxx xxxxxxx', u'pickupTime': u'11/18/2020 15:00', u'num_frozen_labels': 0}}}""," & _
"""{u'braums': {u'cancellation_reasons': {u'who': u'xxxxxxx', u'when': u'11/18/2020 8:02 PM', u'why': u'called to cancel'}}}""" & _
Public Class NDOrder_order
Public Class NDOrder_memo
Public braums As NDOrder_memo_braums
Public Class NDOrder_memo_braums
Public printing_data As NDOrder_memo_braums_printing_data
Public cancellation_reasons As NDOrder_memo_braums_cancellation_reasons
Public customer_signature As String
Public Class NDOrder_memo_braums_cancellation_reasons
Public Class NDOrder_memo_braums_printing_data
Public customerFirstName As String
Public orderNumber As Double
Public customerLastName As String
Public num_refrigerated_labels As Double
Public num_dry_labels As Double
Public packedBy As String
Public pickupTime As String
Public num_frozen_labels As Double