From c25b458b46ca2571c5e0ef9873c6de4cce2b3a4c Mon Sep 17 00:00:00 2001 From: Sophist Date: Mon, 9 Jan 2017 12:42:33 +0000 Subject: [PATCH] Update new line handling Addresses #41. Fix as per discussion in https://github.com/VBA-tools/VBA-Web/issues/270 --- JsonConverter.bas | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/JsonConverter.bas b/JsonConverter.bas index 26b2b12..58a6d68 100644 --- a/JsonConverter.bas +++ b/JsonConverter.bas @@ -557,11 +557,21 @@ Private Function json_ParseString(json_String As String, ByRef json_Index As Lon json_BufferAppend json_buffer, vbFormFeed, json_BufferPosition, json_BufferLength json_Index = json_Index + 1 Case "n" - json_BufferAppend json_buffer, vbCrLf, json_BufferPosition, json_BufferLength - json_Index = json_Index + 1 + If VBA.Mid$(json_String, json_Index+1, 2) == "\r" Then + json_BufferAppend json_buffer, vbCrLf, json_BufferPosition, json_BufferLength + json_Index = json_Index + 3 + Else + json_BufferAppend json_buffer, vbLf, json_BufferPosition, json_BufferLength + json_Index = json_Index + 1 + End If Case "r" - json_BufferAppend json_buffer, vbCr, json_BufferPosition, json_BufferLength - json_Index = json_Index + 1 + If VBA.Mid$(json_String, json_Index+1, 2) == "\n" Then + json_BufferAppend json_buffer, vbCrLf, json_BufferPosition, json_BufferLength + json_Index = json_Index + 3 + Else + json_BufferAppend json_buffer, vbCr, json_BufferPosition, json_BufferLength + json_Index = json_Index + 1 + End If Case "t" json_BufferAppend json_buffer, vbTab, json_BufferPosition, json_BufferLength json_Index = json_Index + 1