【问题标题】:objective-c json serializationObjective-C json序列化
【发布时间】:2013-05-21 06:23:14
【问题描述】:

我需要创建一个 POST 请求,并且我需要在它的主体中放置一个 JSON。 JSON文件的模板如下:

{"key" : [{...}, {...}, {...} ..... ]}

我尝试做的是这样的:

@{@"key" : @[@{...}, @{...} ... ]};

我遇到的问题是它在NSArray 周围加上了圆括号。 这是输出:

{key = ({...}, {...}, ..... )}

我的代码片段(在我创建 NSDictionary 之后)

    NSError *error;
    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:myDictionary
                                                       options:NSJSONWritingPrettyPrinted
                                                         error:&error];
    [request setHTTPBody:jsonData];

有没有办法让NSArray 拥有[ ] 而不是( )

【问题讨论】:

  • 您可以创建一个 NSString 并将每个部分附加为 json 字符串来获得它。 IE。 NSString *jsonString = [NSString stringWithFormat:@"{\"key\" : [{%@}, {%@}, {%@}]}",stringPart1,stringPart2,stringPart3];
  • sn-p 是来自 NSLog 还是来自 JSON 的字符串版本?

标签: ios objective-c request http-post


【解决方案1】:

NSLog 使用 {} 打印 NSDictionary 和 () 打印 NSArray 内容。这与 JSON 无关。您的 JSON 数据结构已正确创建和编码。要验证这样做:

NSLog(@"%@", [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]);

你会看到实际的 JSON 被打印出来了。

【讨论】:

    猜你喜欢
    • 2014-01-21
    • 1970-01-01
    • 2012-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-07
    相关资源
    最近更新 更多