ios - 使用空值填充 NSString

标签 ios objective-c json nsstring

简而言之,我需要一个包含 null 而不是 (null) 的字符串。

例如:

NSString *jsonRequest = [NSString stringWithFormat:@"{\"ename\":%@}", nil];

形成一个看起来像这样的请求:

{ "ename" : (null) }

但我需要它看起来像

{ "ename" : null }

用 Nil、NULL、[NSNull null] 替换 nil 都等同于相同的输出字符串。

有没有办法做到这一点?当我将请求发送到服务器并尝试解析它时,问题就来了,但不喜欢 null 周围的括号。

最佳答案

您需要对 stringWithFormat 的参数进行特殊处理:

NSString *ename = nil;
NSString *jsonRequest = [NSString stringWithFormat:@"{\"ename\":%@}",
                        ename != nil ? ename : @"null"];

或者创建一个宏:

#define STR_OR_NULL(x) (x) != nil ? (x) : @"null"

NSString *jsonRequest = [NSString stringWithFormat:@"{\"ename\":%@}", STR_OR_NULL(ename)];

关于ios - 使用空值填充 NSString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15094710/

相关文章:

c# - 使用 NewtonSoft JSON.net 将 JSON 解析为 C# 对象

ios - 我如何只从 Azure 数据库中检索一列而不是选择 *

ios - 从服务器下载文件时应用程序卡住

ios - 如何在快速按下取消按钮时取消下载请求

objective-c - Core Data无法批量处理很多记录?

objective-c - 如何在 tvOS 中设置 TableViewCell 焦点颜色

iphone - 以编程方式将数据从 JSON 加载到对象?

ios - UIWebView 路径取决于之前按下的按钮 Xcode

javascript - 无论如何要返回 javascript treemap json 中的其他数据?

java - 使用Java API TransmissionWithRecipientArray对象,如何设置像键值数组这样的元素(Sparkpost)