![]() |
RestServer Antwort Json ohne "[" Klammern
Ich muss euch nochmal stören.
Ich habe eine Serverantwort in Json von einem Rest server
Code:
Serverseite zum Üben
{"result":["Test<\u00F6\u00E4\u00FC\u00F6\u00E4\u00FC>7"]}
1["Test<öäüöäü>7"]
Delphi-Quellcode:
Nun möchte ich die "reine" Antwort. Bisher habe ich das mit RegEx erschlagen und möchte es nun aber gerne über den Json way probieren.
function TServerMethods1.updateEchoAttribute1(Key, Obj: string): String;
begin Result:= Key + '<öäüöäü>' + Obj; end;
Delphi-Quellcode:
var
LJSONObject: TJSONObject; RestResponse: string; begin RestResponse:= '{"result":["Test<\u00F6\u00E4\u00FC\u00F6\u00E4\u00FC>7"]}'; LJSONObject := TJSONObject.ParseJSONValue(TEncoding.ASCII.GetBytes(RestResponse), 0) as TJSONObject; mmo1.Lines.Add(LJSONObject.Values['result'].ToString); end; Die schlichte Frage ist wie bekomme ich die -->[" und "]<-- Klammern/Gänsefüßchen entfernt. Ich hoffe ihr könnt helfen. lieben Gruß SM;) |
AW: RestServer Antwort Json ohne "[" Klammern
Kann es sein, dass es dazu vor Kurzem schonmal einen Thread gab? :?
ToString wird das JSON-"Objekt" als Text zurück geben. Es gibt aber bestimmt ein Value oder AsString, das den Wert liefert. :stupid: |
AW: RestServer Antwort Json ohne "[" Klammern
Genau das ist ja mein problemchen
Delphi-Quellcode:
liefert MIT besagten Zeichen
mmo1.Lines.Add(LJSONObject.Values['result'].ToString);
Code:
["Test<öäüöäü>7"]
|
AW: RestServer Antwort Json ohne "[" Klammern
Delphi-Quellcode:
ist von der Definition her dafür da, die Instanz als String darzustellen.
ToString
Das willst du aber nicht, du willst den Wert.
Delphi-Quellcode:
liefert ein
TJSONObject.Values[...]
Delphi-Quellcode:
und wenn das vom Type ein
TJSONValue
Delphi-Quellcode:
ist, dann bekommt man bei
TJSONString
Delphi-Quellcode:
auch den gesuchten String-Wert.
TJSONString.Value
EDIT Stop, Kommando zurück, du hast dort ein
Delphi-Quellcode:
und der erste Wert ist dann ein
TJSONArray
Delphi-Quellcode:
;)
TJSONString
|
AW: RestServer Antwort Json ohne "[" Klammern
Magst mich gerade noch Aufklären wie ich mit einem solchen Array umzugehen habe?
Da bin ich noch Jungfräulich Gruß SM;) |
AW: RestServer Antwort Json ohne "[" Klammern
Und jetzt nochmal meine Antwort lesen. :roll:
Zitat:
|
AW: RestServer Antwort Json ohne "[" Klammern
Und wenn du von der gleichen Faulheit befallen bist wie ich, dann sparst du dir diesen gesamten Fuddelkram mit
Delphi-Quellcode:
und verarbeitest das ganz gemütlich mit
unit Unit2;
interface uses REST.Json.Types; // <- da sind die Json-Attribute definiert type TResponseJSON = class private [ JsonName( 'result' ) ] FResultArray: TArray<string>; public property ResultArray: TArray<string> read FResultArray; end; implementation end.
Delphi-Quellcode:
Weil einfach einfach einfach ist :stupid:
program foo;
uses System.SysUtils, REST.Json, // <- da ist TJson definiert Unit2 in 'Unit2.pas'; procedure Test; var lResponse: TResponseJSON; begin lResponse := TJson.JsonToObject<TResponseJSON>( '{"result":["Test<\u00F6\u00E4\u00FC\u00F6\u00E4\u00FC>7"]}' ); try WriteLn( lResponse.ResultArray[ 0 ] ); finally lResponse.Free; end; end; begin try Test; except on E: Exception do WriteLn( E.ClassName, ': ', E.Message ); end; ReadLn; end. |
AW: RestServer Antwort Json ohne "[" Klammern
TsTsTs ... muss man immer alles dreimal sagen
![]() :stupid: |
AW: RestServer Antwort Json ohne "[" Klammern
Nur zum Test.
Delphi-Quellcode:
?
S := (LJSONObject.Values['result'] as TJSONArray).Items[0].Value;
|
AW: RestServer Antwort Json ohne "[" Klammern
@himitsu
Doch gelesen habe ich es aber meine Versuche mit
Delphi-Quellcode:
scheitern. Ich bekomme '' als Antwort.
mmo1.Lines.Add('2' + LJSONObject.Values['result'].Value);
Wenn ich probiere dort gerade alles durch edit: gerade den Post gesehen ... probier ich gleich SirRufo :) das seh ich mir gleich mal an ^^ :))))) Gruß SM;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:44 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-2025 by Thomas Breitkreuz