Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何对JSON中嵌入的JSON进行编码_Json - Fatal编程技术网

如何对JSON中嵌入的JSON进行编码

如何对JSON中嵌入的JSON进行编码,json,Json,我有一个JSON字符串,其中一个字段是文本字段。这个文本字段可以包含用户在UI中输入的文本,如果他们输入的文本是JSON文本,也许为了说明一些编码,我需要对他们的文本进行编码,以便在发送到服务器的实际JSON结构中不会将其解释为JSON 当服务器接收到JSON结构并进行解码时,我需要确保嵌入的JSON被解码为文本,最终在UI中看起来像JSON 实际上,如何转义嵌入的JSON字符串?我正在做类似的事情,只是用XML而不是JSON:在接收格式错误或不可处理的数据时,服务器返回一个包含一些信息和原始数

我有一个JSON字符串,其中一个字段是文本字段。这个文本字段可以包含用户在UI中输入的文本,如果他们输入的文本是JSON文本,也许为了说明一些编码,我需要对他们的文本进行编码,以便在发送到服务器的实际JSON结构中不会将其解释为JSON

当服务器接收到JSON结构并进行解码时,我需要确保嵌入的JSON被解码为文本,最终在UI中看起来像JSON


实际上,如何转义嵌入的JSON字符串?

我正在做类似的事情,只是用XML而不是JSON:在接收格式错误或不可处理的数据时,服务器返回一个包含一些信息和原始数据的错误结构。为了防止客户端再次解析损坏的数据,服务器上对其进行了base64编码

因此,与其发送

{
  title : "My sample code",
  payload : "{ \"foo\" : \"bar\" }"
}
考虑发送

{
  title : "My encoded sample code",
  payload : "eyAiZm9vIiA6ICJiYXIiIH0="
}

什么站台?对于大多数(如果不是全部的话)JSON生成器,如果你给它一个字符串,它将负责编码/解码,并且不会有错误地解码你给它一个值的JSON字符串的风险。我使用的是Android和Java。我还在代码中手动生成json字符串。我确实使用Gson进行一些编码和解码,但在本例中,我使用Gson手动进行编码和解码。。。解码“外部JSON”不会自动解码“内部JSON”,因为解析器不知道字符串的内容。您无需执行任何操作。@AndroidDev在这种情况下,只需像在任何其他字符串值中一样转义引号即可。这就是全部。但是,滚动您自己的JSON通常既不是一个好主意,也不是绝对必要的,除非您的用例非常具体且范围非常有限。@AndroidDev,您需要转义的不仅仅是引号,还需要转义控制字符(包括换行符),根据JSON规范。同样,如果JSON将作为javascript U+2028和U+2029执行,也需要转义(如果发生),有趣的是,如果您尝试运行以下操作,Chrome控制台将产生错误:
JSON.parse(“{”title:“我的示例代码”,“有效负载”:“{”foo\:“bar\”}”)>VM1725:1未捕获的语法错误:JSON中的意外标记f位于JSON.parse()>的39>位置:1:6@pilat不是真的。这只是对逃跑过程的误解。请尝试
JSON.parse(“{”title:“我的示例代码”,“有效负载”:“{\\“foo\\”:\\“bar\\”}”)。您已经在一个字符串中,因此您还必须避开反斜杠。