AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke RestServer Antwort Json ohne "[" Klammern
Thema durchsuchen
Ansicht
Themen-Optionen

RestServer Antwort Json ohne "[" Klammern

Ein Thema von ScharfeMietze · begonnen am 1. Feb 2016 · letzter Beitrag vom 3. Feb 2016
Antwort Antwort
Seite 1 von 3  1 23      
ScharfeMietze

Registriert seit: 5. Mär 2014
165 Beiträge
 
Delphi 10.2 Tokyo Architect
 
#1

RestServer Antwort Json ohne "[" Klammern

  Alt 1. Feb 2016, 14:37
Ich muss euch nochmal stören.

Ich habe eine Serverantwort in Json von einem Rest server
Code:
{"result":["Test<\u00F6\u00E4\u00FC\u00F6\u00E4\u00FC>7"]}
1["Test<öäüöäü>7"]
Serverseite zum Üben

Delphi-Quellcode:
function TServerMethods1.updateEchoAttribute1(Key, Obj: string): String;
begin
Result:= Key + '<öäüöäü>' + Obj;
end;
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.

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
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.152 Beiträge
 
Delphi 12 Athens
 
#2

AW: RestServer Antwort Json ohne "[" Klammern

  Alt 1. Feb 2016, 14:40
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 1. Feb 2016 um 14:44 Uhr)
  Mit Zitat antworten Zitat
ScharfeMietze

Registriert seit: 5. Mär 2014
165 Beiträge
 
Delphi 10.2 Tokyo Architect
 
#3

AW: RestServer Antwort Json ohne "[" Klammern

  Alt 1. Feb 2016, 15:18
Genau das ist ja mein problemchen
mmo1.Lines.Add(LJSONObject.Values['result'].ToString); liefert MIT besagten Zeichen
Code:
["Test<öäüöäü>7"]
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: RestServer Antwort Json ohne "[" Klammern

  Alt 1. Feb 2016, 15:29
ToString ist von der Definition her dafür da, die Instanz als String darzustellen.

Das willst du aber nicht, du willst den Wert.

TJSONObject.Values[...] liefert ein TJSONValue und wenn das vom Type ein TJSONString ist, dann bekommt man bei TJSONString.Value auch den gesuchten String-Wert.

EDIT Stop, Kommando zurück, du hast dort ein TJSONArray und der erste Wert ist dann ein TJSONString
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
ScharfeMietze

Registriert seit: 5. Mär 2014
165 Beiträge
 
Delphi 10.2 Tokyo Architect
 
#5

AW: RestServer Antwort Json ohne "[" Klammern

  Alt 1. Feb 2016, 15:36
Magst mich gerade noch Aufklären wie ich mit einem solchen Array umzugehen habe?
Da bin ich noch Jungfräulich

Gruß
SM
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.152 Beiträge
 
Delphi 12 Athens
 
#6

AW: RestServer Antwort Json ohne "[" Klammern

  Alt 1. Feb 2016, 15:38
Und jetzt nochmal meine Antwort lesen.
















Zitat:
Delphi-Quellcode:
function Value: string; virtual;
function ToJSON: string;
function ToString: string; override;
//uvm.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: RestServer Antwort Json ohne "[" Klammern

  Alt 1. Feb 2016, 15:47
Und wenn du von der gleichen Faulheit befallen bist wie ich, dann sparst du dir diesen gesamten Fuddelkram mit
Delphi-Quellcode:
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.
und verarbeitest das ganz gemütlich mit
Delphi-Quellcode:
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.
Weil einfach einfach einfach ist
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: RestServer Antwort Json ohne "[" Klammern

  Alt 1. Feb 2016, 15:56
TsTsTs ... muss man immer alles dreimal sagen
http://www.delphipraxis.net/1328714-post6.html

Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.152 Beiträge
 
Delphi 12 Athens
 
#9

AW: RestServer Antwort Json ohne "[" Klammern

  Alt 1. Feb 2016, 15:56
Nur zum Test.
S := (LJSONObject.Values['result'] as TJSONArray).Items[0].Value; ?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
ScharfeMietze

Registriert seit: 5. Mär 2014
165 Beiträge
 
Delphi 10.2 Tokyo Architect
 
#10

AW: RestServer Antwort Json ohne "[" Klammern

  Alt 1. Feb 2016, 15:59
@himitsu

Doch gelesen habe ich es aber meine Versuche mit
mmo1.Lines.Add('2' + LJSONObject.Values['result'].Value); scheitern. Ich bekomme '' als Antwort.

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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz