2017-07-12 4 views
0

Ich habe einen Dienst, der JSON-Eingaben erhält, aber gelegentlich auch ungültige JSON-Inhalte erhält. Ich habe keine Kontrolle über dieses Verhalten. Der Eingang kannWas ist ein guter Weg, um eine gültige oder ungültige JSON in eine Zeichenfolge zu konvertieren?

{"key":{"k1":"v1"},"key2":"value2"} 

oder

{"key":{"k1":"v1"},"Random String"} 

Meine Idee ist es, diese ganze Sache in eine gültige JSON zu wickeln, wie unten

{"id":"some id", "raw_data":"the above input as string"} 

Ich weiß, ich kann alle Zitate entkommen und es behandeln Wie eine Zeichenfolge, aber gibt es eine sauberere Möglichkeit, JSON in eine Escape-Zeichenfolge zu konvertieren?

FWIW, verwende ich Jackson für Parsing und Verarbeitung.

EDIT: Das JSON-Schema ist nicht im Voraus klar und kann mit verschiedenen Eingaben variieren.

Antwort

1

Ich weiß, ich kann alle Anführungszeichen umgehen und behandeln es wie eine Zeichenfolge, aber gibt es eine sauberere Möglichkeit, JSON in Escape-Zeichenfolge zu konvertieren?

Erstellen Sie einfach eine Klasse mit dem raw_data Attribut, dieses Attribut mit dem JSON Sie erhalten haben (richtig oder falsch) und ließ Jackson es serialise (und kümmern uns es eine richtige JSON machen).

+0

Die Daten in 'raw_data' verwenden kein definiertes Schema. Ich habe die Fragen aktualisiert, um dies zu berücksichtigen. –

+0

@VaishakSuresh Ich verstehe nicht, wie es etwas ändert. Was immer Sie vom Client erhalten - gültig oder ungültig - setzen Sie es als Zeichenfolge in "row_data". Jackson wird den Rest erledigen. –

Verwandte Themen