当前位置: 首页 > 面试题库 >

Java转义JSON字符串?

戚建德
2023-03-14
问题内容

我有以下要发送到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);

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


问题答案:

我会使用一个库来String为您创建JSON 。一些选项是:

  • GSON
  • 克罗福德的解放

这将使转义变得更加容易。一个示例(使用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


 类似资料:
  • 问题内容: 我有一个字符串,该字符串在Javascript中序列化为JSON,然后反序列化为Java。 看起来如果字符串包含度数符号,那么我遇到了问题。 我可以使用一些帮助找出应该归咎于谁: 是Spidermonkey 1.8的实现吗?(这具有内置的JSON实现) 是Google gson吗? 是我做不正确的事吗? 这是JSDB中发生的事情: 我本来希望这使我相信Spidermonkey的JSON

  • 问题内容: 手动创建数据时,应如何转义字符串字段?我应该用什么样的中的或者我应该使用 问题是,当我使用时,它不会转义引号,并且当我将整个字符串包装在一对s中时,将生成格式错误的JSON。 问题答案: 理想情况下,找到一种使用你的语言的JSON库,你可以向该库提供一些适当的数据结构,并使它担心如何转义。它会让你保持头脑清醒。如果出于某种原因你没有使用你的语言的库,或者你不想使用一个库(我不建议这样做

  • 本文向大家介绍Java转义字符,包括了Java转义字符的使用技巧和注意事项,需要的朋友参考一下 示例 通常 要使用正则表达式中的特定字符(?+|等),按其字面意思,必须对其进行转义。在常规正则表达式中,这是通过反斜杠完成的\。但是,由于它在Java字符串中具有特殊含义,因此必须使用双反斜杠\\。 这两个示例不起作用: 这个例子有效 分割管道分隔字串 这不会返回预期的结果: 这将返回预期结果: 转义

  • 我有一个Java程序,它将动态地为ElasticSearch构建一些参数的查询。目前,我构建这个的方式逃脱了字符串,因为JsonObject作为Google GSON库的一部分需要传递一个字符串来附加JSON。 以下方法的输出如下: 如您所见,存在的值是转义,ElasticSearch对此提出了一个合适的建议。如果没有转义字符串,我如何实现这个结果? 下面是< code > buildFilter

  • 在JSON中,Unicode字符可以使用表示法进行转义。我假设显然是指十六进制的Unicode代码点。 但由于只有4位数字,这是否意味着无法转义

  • 问题内容: 手动创建JSON数据时,应如何转义字符串字段?我应该用什么样的Apache Commons Lang中的,或者我应该使用? 问题是,当我使用时,它不会转义引号,并且当我将整个字符串包装在一对s中时,将生成格式错误的JSON。 问题答案: 理想情况下, 找到一种使用您的语言的JSON库 ,您可以向该 库 提供一些适当的数据结构, 并使它担心如何转义 。它会让您保持头脑清醒。如果出于某种原