Java 转义 JSON 字符串?

标签 java json node.js

我有以下 JSON 字符串,并将其发送到 NodeJS 服务器:

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);

有什么想法可以让我毫无问题地发送所有字符吗?

最佳答案

我将使用一个库为您创建 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

关于Java 转义 JSON 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18898773/

相关文章:

javascript - Socketcan 注册监听器未被调用

mysql - 返回最后插入的 id Sequelize

java - 如何将对象获取到 "know"它是 LinkedList 中的一个节点?

java - GWT 从小程序调用 JS 方法

javascript - Json 数组追加对象

java - 当我运行 java servlet 查看 JSON 结果时——它弹出文件下载而不是 http ://localhost:8080/

javascript - 从 cordova 文件传输插件上传文件到 nodeJS 服务器

Java : nested loops

java - Java 应用程序的多个实例

javascript - AngularJS $http 返回 200 ok,但失败