AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke TJSONObject.GetValue liefert immer Werte in doppelten Hochkommas
Thema durchsuchen
Ansicht
Themen-Optionen

TJSONObject.GetValue liefert immer Werte in doppelten Hochkommas

Ein Thema von exasoft · begonnen am 18. Dez 2018 · letzter Beitrag vom 19. Dez 2018
Antwort Antwort
Schokohase
(Gast)

n/a Beiträge
 
#1

AW: TJSONObject.GetValue liefert immer Werte in doppelten Hochkommas

  Alt 18. Dez 2018, 21:35
TJSONValue.ToString() macht das Gleiche wie TJSONValue.ToJSON() und liefert den Wert als JSON zurück.

Ein JSON-String ist nun mal ein String mit Quotes.

Wenn du einfach nur den Wert (des JSON-String) haben möchtest, dann nimm TJSONValue.Value() .
  Mit Zitat antworten Zitat
Benutzerbild von TigerLilly
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.241 Beiträge
 
Delphi 12 Athens
 
#2

AW: TJSONObject.GetValue liefert immer Werte in doppelten Hochkommas

  Alt 19. Dez 2018, 07:04
Vorsicht:

Code:
ToString
public
Returns a string containing the class name.
  Mit Zitat antworten Zitat
Schokohase
(Gast)

n/a Beiträge
 
#3

AW: TJSONObject.GetValue liefert immer Werte in doppelten Hochkommas

  Alt 19. Dez 2018, 07:10
Vorsicht:

Code:
ToString
public
Returns a string containing the class name.
Nein, tut es nicht und ein Klick entfernt findet man das:
Delphi-Quellcode:
function TJSONAncestor.ToString: string;
var
  Buf: TStringBuilder;
begin
  Buf := TStringBuilder.Create(256);
  try
    ToChars(Buf);
    Result := Buf.ToString(True);
  finally
    Buf.Free;
  end;
end;
Wie so oft ist die Dokumentation nur ein Anhaltspunkt, gerade wenn wir es mit virtuellen Methoden zu tun haben.
  Mit Zitat antworten Zitat
Benutzerbild von TigerLilly
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.241 Beiträge
 
Delphi 12 Athens
 
#4

AW: TJSONObject.GetValue liefert immer Werte in doppelten Hochkommas

  Alt 19. Dez 2018, 07:28
Missverständnis: Ich wollte darauf hinweisen, was ToString üblicherweise macht. Dass ToString hier was anderes als den Klassennamen zurückliefert, ist eine Ausnahme (deren Sinn ich nicht sehe).
  Mit Zitat antworten Zitat
Schokohase
(Gast)

n/a Beiträge
 
#5

AW: TJSONObject.GetValue liefert immer Werte in doppelten Hochkommas

  Alt 19. Dez 2018, 07:33
Missverständnis: Ich wollte darauf hinweisen, was ToString üblicherweise macht. Dass ToString hier was anderes als den Klassennamen zurückliefert, ist eine Ausnahme (deren Sinn ich nicht sehe).
Die Methode ToString ist dafür da um eine String-Repräsentation der Klassen-Instanz zu bekommen. Diese Methode ist erstmalig bei TObject als virtual definiert (soll heißen: kann und darf überschrieben werden) und dort liefert diese einfach nur den Klassennamen zurück.

Diese Methode ist nicht dazu gedacht, den Klassennamen zu erhalten, das geht wesentlich besser über andere Wege.

So steht es auch in der Dokumentation:
Zitat:
Note: ToString is intended to be overridden in user-derived classes, to provide consumer objects with a string representation.

Geändert von Schokohase (19. Dez 2018 um 07:36 Uhr)
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.199 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: TJSONObject.GetValue liefert immer Werte in doppelten Hochkommas

  Alt 19. Dez 2018, 07:42
TObject.ToString() ist nur so implementiert damit man überhaupt etwas hat. Besser als nichts 🤷
  Mit Zitat antworten Zitat
rd3

Registriert seit: 14. Aug 2015
21 Beiträge
 
#7

AW: TJSONObject.GetValue liefert immer Werte in doppelten Hochkommas

  Alt 19. Dez 2018, 09:17
Hallo,

o.GetValue('strasse').Value;

sollte gehen. ToString ist hier nicht für gedacht.
  Mit Zitat antworten Zitat
Antwort Antwort


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 04:58 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