0

我需要的

 "sampleId":"[{\"TextVal\":\"10233\"}]"

我在哪里

    NSDictionary *sampledict=@{@"TextVal": @"10233"};
    NSArray *arr=[NSArray arrayWithObject:sampledict];
    [dict setObject:arr forKey:@"sampleId"];

但是将其转换为 json 文本给了我

   "sampleId":[{TextVal:10233}]

有没有办法获得价值{\"TextVal\":\"10233\"}?这是针对具有以下内容的 POST 数据的 Web 服务调用。当排除此 \ 时,Web 服务给了我错误的请求错误。因此要求

请注意我AFNetworking用于网络数据获取的目的

4

1 回答 1

2

这看起来像“嵌套的 JSON”。您必须先为数组创建 JSON 数据 arr,然后将其放入外部字典。然后为完整对象创建 JSON 数据:

NSDictionary *sampledict = @{@"TextVal": @"10233"};
NSArray *arr = [NSArray arrayWithObject:sampledict];
NSData *innerJson = [NSJSONSerialization dataWithJSONObject:arr options:0 error:NULL];
NSString *innerJsonString = [[NSString alloc] initWithData:innerJson encoding:NSUTF8StringEncoding];

NSMutableDictionary *dict = [NSMutableDictionary dictionary];
[dict setObject:innerJsonString forKey:@"sampleId"];

NSData *json = [NSJSONSerialization dataWithJSONObject:dict options:0 error:NULL];
NSString *jsonString = [[NSString alloc] initWithData:json encoding:NSUTF8StringEncoding];
NSLog(@"%@", jsonString);

输出:

{"sampleId":"[{\"TextVal\":\"10233\"}]"}
于 2013-11-04T06:27:55.990 回答