У меня есть сообщение, которое должно быть отправлено через сокет, строка, представляющая json:
String message = "{\"sql\": \"{0}\"}";
Я использую MessageFormatter
, чтобы вставить фактическое сообщение отпользователя и отправьте его на сервер.
Однако для понимания сервера это должна быть правильная строка JSON.
После манипуляции с ручным экранированием, понимая, что сообщение SQL может иметь вложенные кавычки и так далее, я понимаю, что хочу использовать подходящий инструмент JSON, чтобы убедиться, что строка является json-правильной.
Я хочу использовать нашорн, чтобы сохранить код ванили и избежать багажа в банке.
Нашорн кажется вполне способным и пригодным для этой задачи, но я продолжаю его поднимать, и я не уверен, что делать на этом этапе.
Я попробовал код из этого ответа :
ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn");
ScriptObjectMirror json = (ScriptObjectMirror) engine.eval("JSON");
message = (String) json.callMember("stringify", json.callMember("parse", message));
Однако, это просто подтверждает мою строку, я хочу, чтобы nashorn фактически экранировал ее в правильной форме.
- Я знаю о Джексоне.
- Я знаю о других библиотеках JSON.
Любое понимание будет высоко ценится.