2013-11-04 21 views
0

我需要转换IOS

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

在那里我有

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

但这个转换为JSON文本给了我什么

"sampleId":[{TextVal:10233}] 

是有办法得到的价值为{\"TextVal\":\"10233\"}? 这是一个Web服务调用与POST数据具有以下content.And排除这种\当.hence要求

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

Web服务给了我错误的请求错误

回答

2

看起来像“嵌套的JSON”。您必须首先为阵列 arr创建JSON数据,并将其放入外部字典中。那么对于整个 对象创建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\"}]"} 
+0

Brilliant..but如果我需要'sampleId =“[{\ “TextVal \”:\ “10233 \” }]';' –

+0

@ LithuT.V:这看起来不是有效的JSON。 JSON字典的格式总是'{key:value}',使用冒号':'作为分隔符,而不是'='。 JSON字符串总是用双引号'“...”'括起来,而不是''...'',比较http://json.org。所以我不太了解这个要求。 –

+0

那么在休息客户端,我需要输入像这样,但在代码中解释的答案工作正常 –