あなたの入力は、おそらくString
に格納されているテキスト、としてJSONオブジェクトです。あなたは本質的にそのテキストをJSON文字列に変換しようとしています。そうするだけです。引用符(および他の文字)はJSON文字列にエスケープする必要があります
String input = "{\"name\":\"Error\",\"message\":\"hello\"}";
System.out.println("Original JSON content: " + input);
Gson gson = new Gson();
String jsonified = gson.toJson(input);
System.out.println("JSONified: " + jsonified);
ので、toJson
は適切にその変換を実行します。
上記のコードは、jsonified
は現在JSON文字列のコンテンツを含む、すなわち
Original JSON content: {"name":"Error","message":"hello"}
JSONified: "{\"name\":\"Error\",\"message\":\"hello\"}"
を生成します。ジャクソンで
、プロセスは同じです、ちょうどあなたのJSONオブジェクトのテキスト
ObjectMapper mapper = new ObjectMapper();
StringWriter writer = new StringWriter();
mapper.writeValue(writer, input);
jsonified = writer.toString();
System.out.println("JSONified: " + jsonified);
"は、` `strJson.replace( "\""
JSONified: "{\"name\":\"Error\",\"message\":\"hello\"}"
を生成含ま
String
インスタンスをシリアル化\\\ "")); ''? – f1shhttps://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringEscapeUtils.html#escapeJson-java.lang.String- –
@RobinTopperこれは私が探しているものに近い。しかし、JacksonのJsonStringEncoder.quoteAsString()は、JSONの書式設定も訂正できるので、私のためのより良い選択肢だと感じています。 –