ios - ios中如何将nsstring格式转为json响应格式?

标签 ios objective-c json

我的 Json 响应:

{
"xxx": {
"y": {
"id": 1,
"name": "z"
},
"startday": "2016-01-10",
"status": "New",
"total": 1,
"a": [
{
"id": 766,
"b": {
"id": 3,
"name": "c"
},
"d": {
"id": 4
 },
"e": {
"id": 1,
"name": "f"
},
"g": {
"id": 8,
"name": "h"
},
"hours": 1,
"comments": "",
"spent_on": "2016-01-10"
}
]
}
}

由此我创建了一个这样的字符串:

 NSString * str = @"{\"xxx\":{\"y\":{\"id\":1,\"name\":\"z\"},\"startday\":\"2016-01-10\",\"status\":\"New\",\"total\":1.0,\"a\":[{\"id\":766,\"b\":{\"id\\":3,\\"name\\":\\"c\\"},\\"d\\":{\\"id\\":4},\\"e\\":{\\"id\\":1,\\"name\\":\\"f\\"},\\"g\\":{\\"id\\":8,\\"name\\":\\"h\\"},\\"hours\\":1.0,\\"comments\\":\\"\\",\\"spent_on\\":\\"2016-01-10\\"}]}}";

然后我通过下面的代码发布这个值:

NSData *objectData = [str  dataUsingEncoding:NSUTF8StringEncoding];

NSDictionary *jsonData = [NSJSONSerialization JSONObjectWithData:objectData options:NSJSONReadingMutableContainers error:&jsonError];

if (jsonError == NULL)

{

msgView =@"error msg null";

NSURL *url = [NSURL URLWithString:@"xxx"];

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url
                                                             cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];

NSData *requestData = [jsonStr dataUsingEncoding:NSUTF8StringEncoding];

[request setHTTPMethod:@"POST"];

[request setHTTPBody: requestData];

}

它到达服务器并获得响应。类似地,我获得了用户输入应用程序的所有值。我创建了串联的 NSstring。

NSString* concate = [NSString stringWithFormat:@"%@%@%@%@,%@%@%@,%@,%@%@,%@%,%@,%@,%@%@%@%@%@%@,%@%@,%@%@,%@%@",xx,....];

所以我在连接后得到这样的输出响应:

{\"x\":{\"y\":{\"id\":1,
\"name\":\"a\"
},
\"startday\":\"2016-01-10\"
,
\"status\":\"New\"
,{\"total\":1,\"time_entries\":[{\"id\":766,
\"b\":{
\"id\":8,
\"name\":\"c\"
}
,
\"u\":{
\"id\":22
}
,\"d\":{\"id\":1
\"name\":\"e\"
},
\"l\":{
\"id\":8,
\"name\":\"g\"
}
,\"hours\":1,\"comments\":\"\",\"spent_on\":\"2016-01-12\"}]}}

所以如果通过这个,它会抛出错误。在这里我必须用其他方法连接或组合不同的字符串。或者是否有可能将字符串转换为 json 响应格式。或者任何其他简单的方法来完成这个任务。请给我建议。

最佳答案

首先,您需要通过执行以下操作将 NSString 转换为 NSData

NSData *data = [concate dataUsingEncoding:NSUTF8StringEncoding];

然后简单地使用NSJSONSerializationJSONObjectWithData:方法将其转换为JSON

NSError *error = nil;
id json = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error];
if(!error) {
    NSLog(@"%@", json);
}

关于ios - ios中如何将nsstring格式转为json响应格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34742871/

相关文章:

javascript - Node js 上的 JSON

javascript - 查找嵌套对象的键并返回其路径

JavaScript json 回调

ios - 如何根据单元格内部的文本自动调整单元格的高度?

iphone - 适用于 iOS 的 pretty-print 距离

iphone - 使用另一个 NSArray 作为指南对 NSArray 进行排序

iphone - 使用 xcode 4.2 和 Storyboard 通过代码更改 View ?

ios - Mobile Safari 越狱调整开发

ios - 如何从 Swift 中的 SecItemCopyMatching 返回多个匹配项

ios - Core Data - 检测数据库存储是否已经创建