![]() |
JSON rekursiv nach Eintrag suchen
Hi,
ich versuche gerade einen Eintrag iterativ in einem JSONObject zu suchen, aber das gelingt mir irgendwie nicht. Das Json schaut ungefähr so aus: { "1":"", "2":0, "3":0, "4":{ "1":{ "name":{ "pre":"", "sur":"", }, } } } Ich wollte gerne sowas wie FindValue(JSON, 'pre') realisieren. Im Prinzip kann ich auch so etwas wie Found := JSON.GetValue('4') as TJSONValue; Found := Found.GetValue<TJsonValue>('1'); Found := Found.GetValue<TJsonValue>('name'); found.GetValue<string>('pre') machen, aber das finde ich nicht wirklich praktisch in dem Fall. |
AW: JSON rekursiv nach Eintrag suchen
Delphi-Quellcode:
const
// Der Formatter vom Forum zerstört die Leerzeichen, ist eigentlich alles schön eingerückt THE_JSON = '{ ' + sLineBreak + ' "1":"", ' + sLineBreak + ' "2":0, ' + sLineBreak + ' "3":0, ' + sLineBreak + ' "4":{ ' + sLineBreak + ' "1":{ ' + sLineBreak + ' "name":{ ' + sLineBreak + ' "pre":"", ' + sLineBreak + ' "sur":"" ' + sLineBreak + ' } ' + sLineBreak + ' } ' + sLineBreak + ' } ' + sLineBreak + '}'; var LWholeJson: TJSONValue; LPreJson: TJSONValue; begin LWholeJson := TJSONObject.ParseJSONValue(THE_JSON, True, True); try LPreJson := LWholeJson.FindValue('4.1.name.pre'); OutputDebugString(PChar('Content of "pre": ' + LPreJson.ToJSON)); finally LWholeJson.Free; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz