From adca5bebd9e9c97fd7286e199bb9fc1b466438d1 Mon Sep 17 00:00:00 2001 From: himanshu Date: Wed, 19 Mar 2025 22:25:55 +0530 Subject: [PATCH 1/2] [FIX] Update StringExtension method to vaidate JSON before parsing --- src/AutoWrapper/Extensions/StringExtension.cs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/AutoWrapper/Extensions/StringExtension.cs b/src/AutoWrapper/Extensions/StringExtension.cs index 14bb35b..eb2fb94 100644 --- a/src/AutoWrapper/Extensions/StringExtension.cs +++ b/src/AutoWrapper/Extensions/StringExtension.cs @@ -29,6 +29,14 @@ public static bool IsValidJson(this string text) public static (bool IsEncoded, string ParsedText) VerifyBodyContent(this string text) { + if(string.IsNullOrWhiteSpace(text)) + { + return (false, text); + } + if(!text.StartsWith("{") && !text.StartsWith("[")) + { + return (false, text); + } try { var obj = JToken.Parse(text); From 2b2a6ef2615493082a74896c53ef3fe41935e52e Mon Sep 17 00:00:00 2001 From: himanshu Date: Wed, 19 Mar 2025 22:31:53 +0530 Subject: [PATCH 2/2] refactored code --- src/AutoWrapper/Extensions/StringExtension.cs | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/AutoWrapper/Extensions/StringExtension.cs b/src/AutoWrapper/Extensions/StringExtension.cs index eb2fb94..02ff60a 100644 --- a/src/AutoWrapper/Extensions/StringExtension.cs +++ b/src/AutoWrapper/Extensions/StringExtension.cs @@ -29,11 +29,7 @@ public static bool IsValidJson(this string text) public static (bool IsEncoded, string ParsedText) VerifyBodyContent(this string text) { - if(string.IsNullOrWhiteSpace(text)) - { - return (false, text); - } - if(!text.StartsWith("{") && !text.StartsWith("[")) + if(!IsValidJsonText(text)) { return (false, text); } @@ -64,6 +60,18 @@ public static string ToCamelCase(this string str) } return str; } + + private static bool IsValidJsonText(string text) + { + if(string.IsNullOrWhiteSpace(text)) + { + return false; + } + bool startsWithBrace = text.StartsWith("{") && text.EndsWith("}"); + bool startsWithBracket = text.StartsWith("[") && text.EndsWith("]"); + + return startsWithBrace || startsWithBracket; + } } }