iOS开发中上传JSON字符串到后台服务器
来源:互联网 发布:u盘物理损坏数据恢复 编辑:程序博客网 时间:2024/06/05 13:31
在之前的开发中一般上传给后台服务器的各个字段的内容都是一些字符串,而最近在一个项目中却需要上传一个JSON字符串,由于之前没上传过JSON字符串所以感觉挺新鲜,于是上网查了相关知识,并在这里记录一下。
在上传JSON字符串之前首先需要获取JSON字符串,JSON字符串其实也是由OC中的某个对象转换过来的。转换思路:将某个对象先通过NSJSONSerialization转换成NSData对象,然后将这个NSData对象转换成字符串,这样得到的字符串就是JSON字符串。(是不是很简单!)
看代码:
-(NSString*)ObjectToJsonString:(id)object{
NSString *jsonString = [[NSString
alloc]init];
NSError *error;
NSData *jsonData = [NSJSONSerialization
dataWithJSONObject:object
options:NSJSONWritingPrettyPrinted
error:&error];
if (! jsonData) {
NSLog(@"error: %@", error);
} else {
jsonString = [[NSString
alloc]initWithData:jsonData
encoding:NSUTF8StringEncoding];
}
return jsonString;
}
举例:将一个数组转成JSON字符串
数组:
(
{
id = liangsen0;
index = 0;
name = OC0;
},
{
id = liangsen1;
index = 1;
name = OC1;
},
{
id = liangsen2;
index = 2;
name = OC2;
}
)
将上面的数组利用上面的方法转成的JSON字符串:[
{
"index" : 0,
"name" : "OC0",
"id" : "liangsen0"
},
{
"index" : 1,
"name" : "OC1",
"id" : "liangsen1"
},
{
"index" : 2,
"name" : "OC2",
"id" : "liangsen2"
}
]
然后这样的JSON字符串大多数并不能满足我们的需要(和后台给出的JSON字符串形式不同),上面的这个JSON字符串中会有空格、换行符、反斜杠,这些特殊字符串都是我们不需要的,因此我们还需要对JSON字符串中进行处理(去掉那些我们不需要的字符)。新的对象转JSON的方法:
-(NSString*)ObjectTojsonString:(id)object
{
NSString *jsonString = [[NSString
alloc]init];
NSError *error;
NSData *jsonData = [NSJSONSerialization
dataWithJSONObject:object
options:NSJSONWritingPrettyPrinted
error:&error];
if (! jsonData) {
NSLog(@"error: %@", error);
} else {
jsonString = [[NSString
alloc]initWithData:jsonData
encoding:NSUTF8StringEncoding];
}
NSMutableString *mutStr = [NSMutableString
stringWithString:jsonString];
NSRange range = {0,jsonString.length};
[mutStr replaceOccurrencesOfString:@" "
withString:@""
options:NSLiteralSearchrange:range];
NSRange range2 = {0,mutStr.length};
[mutStr replaceOccurrencesOfString:@"\n"
withString:@""
options:NSLiteralSearchrange:range2];
NSRange range3 = {0, mutStr.length};
NSString * str =@"\\";
[mutStr replaceOccurrencesOfString:strwithString:@""options:NSLiteralSearchrange:range3];
return mutStr;
}
该方法中主要就是添加了去除一些字符的方法。注意:我们在去除字符串中的“\”反斜杠时,需要使用"\\"。最终打印的字符串:
[{"index":0,"name":"OC0","id":"liangsen0"},{"index":1,"name":"OC1","id":"liangsen1"},{"index":2,"name":"OC2","id":"liangsen2"}]
- iOS开发中上传JSON字符串到后台服务器
- iOS开发:后台定位并上传数据到服务器
- iOS中使用NSJSONSerialization转换成json字符串后传递到后台的引号转义处理
- iOS开发:上传头像到服务器
- 技术分享- IOS后台获取地理位置并且上传到服务器
- iOS 上传数据到后台
- iOS post一个json字符串到服务器 评论
- iOS 图片封装为字符串,作为参数上传到服务器
- iOS开发代码:从文本文件中读取内容到字符串里(+ .json文件)
- ios开发 后台定位上传
- iOS开发中解析服务器字符串
- iOS开发-利用AFN上传图片到服务器
- 【iOS开发】AFNetworking上传语音文件(.mp3)到服务器
- 将字符串json写入到服务器文件中
- android 选择视频文件 上传到后台服务器
- android 选择视频文件 上传到后台服务器
- iOS 上传文件到服务器
- iOS 上传图片到服务器
- Promise例子
- 菜单框架简单程序设计
- MySQL字符编码设置
- github常见操作和常见错误!错误提示:fatal: remote origin already exists.
- PHP数据库操作——连接查询
- iOS开发中上传JSON字符串到后台服务器
- JUnit5 技术前瞻
- MySQL的数据控制语言DCL
- 用vue创建一个项目
- nvme_core_init
- PyQt利用百度API绘制行车路径
- http协议与web本质
- ROS总结——录制和回放数据
- TortoiseSVN设置比较工具为BeyondCompare