2016-12-20 2 views
0

Gibt es einen Mechanismus zur Vermeidung von Junk/Sonderzeichen vom RETS-Server mit DMQL-Abfragen und Phrets?Wie vermeidet man Sonderzeichen von RETS mit Phrets?

für zB: Vermeiden Sie eingeschlossene doppelte Anführungszeichen ("Wert") aus den Daten. Vermeiden Sie auch Zeichenkombinationen wie ("value /"), dies verursacht auch viele Probleme.

Ich kann entkommen einmal heruntergeladen mit PHP-Skript. Aber dann ist die Frage, jede direkte Methode, die solche Flucht von RETS behandelt, endet selbst?

Dank

+0

Können Sie erklären, warum doppelte Anführungszeichen problematisch sind? Können Sie ein konkretes Beispiel für Daten nennen, die Ihnen Probleme bereiten? Sie können die Zeichencodierung in RETS steuern, aber Ihr Problem klingt nicht wie ein Codierungsproblem. – GantTheWanderer

+0

Problem ist, dass ich eine JSON-Zeichenfolge erstellen muss und dass auch innerhalb der CSV-Datei. Also bricht entweder CSV oder JSON ab. –

+0

Wenn die Anführungszeichen vorhanden sein sollen, sollten Sie sie in Ihrer CSV- oder JSON-Datei ausschließen. Ich denke in CSV können Sie alle '" 'durch' "" ersetzen und in JSON ersetzen Sie alle '" 'durch' \ "'. – GantTheWanderer

Antwort

0

Theres nichts, was ich in der Beschreibung finden kann, die für Sie entkommen oder ignoriert Zeichen. Diese Funktion geht über RETS hinaus.

Die eigentliche Frage ist hier, wie man JSON im CSV-Format kodiert.

Hier ist die Zeichenfolge, die Sie

"one","two"

sagen seine gespeicherten in der start Variable

kodieren Lassen Sie es als JSON-Objekt kodieren möchten:

jsonString = '{"data":"' + start.Replace('"','\\"') + '"}';

-> {"data":"\"one\",\"two\""}

-Test es bei jsonlint.com und beobachten seine gültige JSON

Also, wenn Sie diese in einer CSV-Datei zu speichern, benötigt, dann haben Sie es noch einmal zu kodieren.

string csvJsonString = '"' + jsonString.Replace('"','""') + '"';

-> "{""data"":""\""one\"",\""two\""""}"

String validCsv = csvJsonString + "" + csvJsonString

-> "{""data"":""\""one\"",\""two\""""}","{""data"":""\""one\"",\""two\""""}"

-Test dies bei csvlint.io und sehen, dass seine gültige CSV.

An dieser Stelle ist die Zeichenfolge validCsv nicht mehr gültig JSON natürlich muss es von einem CSV-Reader wieder in JSON geparst werden.

+0

Die Voraussetzung ist, dass eine der CSV-Spalten JSON-Zeichenfolgen benötigt meine Frage, wenn ich "mit" "es" lösche, löscht CSV-Problem nur nicht JSON-Zeichenfolge in CSV. Für JSON fix wieder wie Sie sagten "mit \" bricht csv (zB: {"SortAs": "SGML", "Begriffe": "eins", "zwei", "drei", "sqft": "20 "6" "}).Diese Szenarien machen Pause –

+0

in dem obigen Beispiel, wenn es entkommen wird, wird wie sein {"SortAs": "SGML", "Begriffe": "eins", "zwei", "drei" "," sqft ":" 20'6 \ ""} Kombination von \ ", bricht CSV –

+0

Überprüfen Sie die Antwort für Details. Sie können nicht erwarten, dass die resultierende Zeichenfolge in JSON und CSV gleichzeitig kompatibel ist. Die Daten müssen zuerst in JSON codiert werden, dann muss JSON in CSV codiert werden. Wenn die Datei gelesen wird, entpackt ein CSV-Reader alles, und Sie können erneut auf das gültige JSON zugreifen. – GantTheWanderer

Verwandte Themen