From 3d333a1d17eda43a387947aeab824120e79fb697 Mon Sep 17 00:00:00 2001 From: michael Date: Fri, 24 Jul 2020 11:03:25 +0000 Subject: [PATCH] * Add joIgnoreDuplicates git-svn-id: trunk@45840 - --- packages/fcl-json/src/jsonparser.pp | 3 ++- packages/fcl-json/src/jsonscanner.pp | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/fcl-json/src/jsonparser.pp b/packages/fcl-json/src/jsonparser.pp index 41ca48d11a..8c51eae9da 100644 --- a/packages/fcl-json/src/jsonparser.pp +++ b/packages/fcl-json/src/jsonparser.pp @@ -129,7 +129,8 @@ begin // Add to existing structural type if (FStruct is TJSONObject) then begin - TJSONObject(FStruct).Add(FKey,AValue); + if (Not (joIgnoreDuplicates in options)) or (TJSONObject(FStruct).IndexOfName(FKey)=-1) then + TJSONObject(FStruct).Add(FKey,AValue); FKey:=''; end else if (FStruct is TJSONArray) then diff --git a/packages/fcl-json/src/jsonscanner.pp b/packages/fcl-json/src/jsonscanner.pp index 884b396bda..6ea84d43df 100644 --- a/packages/fcl-json/src/jsonscanner.pp +++ b/packages/fcl-json/src/jsonscanner.pp @@ -51,7 +51,7 @@ type EScannerError = class(EParserError); - TJSONOption = (joUTF8,joStrict,joComments,joIgnoreTrailingComma); + TJSONOption = (joUTF8,joStrict,joComments,joIgnoreTrailingComma,joIgnoreDuplicates); TJSONOptions = set of TJSONOption; Const