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

JSON serialization double quote (") and single (') quote issue in iOS

我遇到 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);
  }

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

有人知道吗?

您可能应该转义您的 non-delimitating 引号: { 备注="test apple \"\"\""; }

iOS 11 已将 "Smart Punctuation" 添加到键盘设置。

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

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

Smart Punctuation = No