iOS 中的 JSON 序列化双引号 (") 和单引号 (') 问题

Posted

技术标签:

【中文标题】iOS 中的 JSON 序列化双引号 (") 和单引号 (\') 问题【英文标题】:JSON serialization double quote (") and single (') quote issue in iOSiOS 中的 JSON 序列化双引号 (") 和单引号 (') 问题 【发布时间】:2018-03-28 07:57:36 【问题描述】:

我正面临 JSON 编码问题。

我已将我的数据提交到以下格式的服务器以保存备注。


Remarks = "test apple """ ";

然后在从服务器获取数据时,我收到了不同的格式,例如 输出:


Remarks = "test apple \U00e2\U0080\U009c\U00e2\U0080\U009d\U00e2\U0080\U009d\U00e2\U0080\U009d\\n";

在提交数据时,我正在使用 JSON 序列化。

  NSData *jsonData
    = [NSJSONSerialization dataWithJSONObject: dict
                                      options: NSJSONWritingPrettyPrinted
                                        error: nil];

  if (jsonData)
  
    NSString* jsonString
      = [[NSString alloc]
          initWithData: jsonData
              encoding: NSUTF8StringEncoding];
    NSLog(@"posting params: %@", jsonString);
  

我的问题是为什么我没有收到我已提交的信息。我只面对双引号 (") 和单引号 (')。

有人知道吗?

【问题讨论】:

你能显示一些服务器代码吗? android 应用程序运行良好.. 只有 ios 只面向.. 你知道@André Slotta 吗? 在你的例子中只有双引号,对吗?如何将数据发送到服务器。该示例是您代码的一部分吗? @Amin Negm-Awad 是的 【参考方案1】:

您可能应该转义您的非定界引号: 备注 = "测试苹果\"\"\" ";

【讨论】:

可能,但只要他没有引用他的整个代码,它就是在猜测。【参考方案2】:

iOS 11 在键盘设置中添加了“智能标点符号”。

这意味着当输入“Singapore”时,它会将其转换为“Singapore”。 '"' 被替换为 '“' 和 '”' 字符串。它们是不同的引号。

因此,一种选择可能是将 '“' 和 '”' 替换为 '\"'。

Smart Punctuation = No

【讨论】:

您好,如何处理我的代码我面临同样的双引号问题:["fontFamily"="firstfont","fontURL"="https%3A%2F%2Fs3.amazonaws.com% 2FAttachments%2F1295312%2FUmbrellaMarket.ttf%3FAWSAccessKeyId=AKIAIBQXWGUYOJ6RIHHA&Expires=1853589442&Signature=fY8146gswIkXYyuouOT90HPbOlA%253D","fontFamily"="secondfont","fontURL"="https%3A%2F%2Fs3.amazonaw 2FUmbrellaMarket.ttf%3FAWSAccessKeyId=AKIAIBQXWGUYOJ6RIHHA&Expires=1853589460&Signature=LKw3TMt9r9BPC9zmiw85tTktX1A%253D"] 当我将此代码发送到服务器时,我收到错误

以上是关于iOS 中的 JSON 序列化双引号 (") 和单引号 (') 问题的主要内容,如果未能解决你的问题,请参考以下文章

返回的json中的双引号

返回的json中的双引号

Python中使用json.dumps()代替str()保留字典中的双引号

php 接收到json双引号前有转义符\,怎么去除

vb去掉字符串中的双引号

如何去掉字符串中的 双引号