JavaはJSON文字列をエスケープしますか?質問する

JavaはJSON文字列をエスケープしますか?質問する

NodeJS サーバーに送信する次の JSON 文字列があります。

String string = "{\"id\":\"" + userID + "\",\"type\":\"" + methoden + "\",\"msg\":\"" + msget + "\", \"name\":\"" + namnet + "\", \"channel\":\"" + activeChatChannel + "\", \"visitorNick\":\"\", \"agentID\":\" " + agentID + "\"}";

PrintWriter pw = new PrintWriter(new OutputStreamWriter(os, "utf-8"));
pw.println(string);

問題は、文字列msgetに文字が含まれていて"'

NodeJS サーバーでは、JSON を次のように解析しています。

var obj = JSON.parse(message);

すべての文字を問題なく送信するにはどうすればいいでしょうか?

ベストアンサー1

ライブラリを使用して JSON を作成しますString。いくつかのオプションは次のとおりです。

これにより、エスケープ処理がはるかに簡単になります。例 ( を使用org.json) は次のようになります。

JSONObject obj = new JSONObject();

obj.put("id", userID);
obj.put("type", methoden);
obj.put("msg", msget);

// etc.

final String json = obj.toString(); // <-- JSON string

おすすめ記事