OC中如何把字典中的数据拼接成url字符串
在使用objective-c语言开发iOS应用中,会向服务器通过URL请求一些数据,因此对URL的拼接肯定少不了。而在iOS中,我们一般是通过将字典中的数据拼接成我们要请求的URL字符串,那这个是怎么实现的呢?今天小编就将为大家分享一篇在网上看到的一位大神对Objective-C中把数组字典的数据转换成URL的剖析,一起来看看吧。
1.生成测试数据
字典中的键,我们一般是通过宏定义来初始化的,目的是便于维护,提高代码编写效率,下面是对key的宏定义:
//定义字典键
#define A @"a"
#define B @"b"
#define C @"c"
#define D @"d"
添加测试数据
//容纳字符串拼接后的字符串
NSMutableArray *arrayURL = [NSMutableArray new];
//存放可变字典的数组
NSMutableArray *arrayDic = [NSMutableArray new];
//生成测试数据
NSDictionary *dic1 = @{A : @10,
B : @20};
NSDictionary *dic2 = @{A : @10,
B : @20,
C : @30};
NSDictionary *dic3 = @{A : @10,
C : @30};
//把数组加入字典
[arrayDic addObject:dic1];
[arrayDic addObject:dic2];
[arrayDic addObject:dic3];
//容纳字符串拼接后的字符串
NSMutableArray *arrayURL = [NSMutableArray new];
//存放可变字典的数组
NSMutableArray *arrayDic = [NSMutableArray new];
//生成测试数据
NSDictionary *dic1 = @{A: @10,
B: @20};
NSDictionary *dic2 = @{A: @10,
B: @20,
C: @30};
NSDictionary *dic3 = @{A: @10,
C: @30};
//把数组加入字典
[arrayDicaddObject:dic1];
[arrayDicaddObject:dic2];
[arrayDicaddObject:dic3];
2、数据转换成URL
接下来我们要做的就是把上面可变数组中的字典的数据转换为URL,转换的具体过程如下:
//从数组中取出字典,把每个然后拼接成url
for (int i = 0; i < arrayDic.count; i ++)
{
NSLog(@"对数组中第%d个字典操作n:%@",i+1 ,arrayDic[i]);
//URL
NSMutableString *URL = [NSMutableString stringWithFormat:@"http://www.baidu.com"];
//获取字典的所有keys
NSArray * keys = [arrayDic[i] allKeys];
//拼接字符串
for (int j = 0; j < keys.count; j ++)
{
NSString *string;
if (j == 0)
{
//拼接时加?
string = [NSString stringWithFormat:@"?%@=%@", keys[j], arrayDic[i][keys[j]]];
}
else
{
//拼接时加&
string = [NSString stringWithFormat:@"&%@=%@", keys[j], arrayDic[i][keys[j]]];
}
//拼接字符串
[URL appendString:string];
}
NSLog(@"第%d个字典转换的URL:%@",i+1, URL);
//加入数组
[arrayURL addObject:URL];
}
//从数组中取出字典,把每个然后拼接成url
for (int i = 0; i < arrayDic.count; i ++)
{
NSLog(@"对数组中第%d个字典操作n:%@",i+1 ,arrayDic[i]);
//URL
NSMutableString *URL = [NSMutableStringstringWithFormat:@"http://www.baidu.com"];
//获取字典的所有keys
NSArray * keys = [arrayDic[i]allKeys];
//拼接字符串
for (int j = 0; j < keys.count; j ++)
{
NSString *string;
if (j == 0)
{
//拼接时加?
string = [NSStringstringWithFormat:@"?%@=%@", keys[j], arrayDic[i][keys[j]]];
}
else
{
//拼接时加&
string = [NSStringstringWithFormat:@"&%@=%@", keys[j], arrayDic[i][keys[j]]];
}
//拼接字符串
[URLappendString:string];
}
NSLog(@"第%d个字典转换的URL:%@",i+1, URL);
//加入数组
[arrayURLaddObject:URL];
}
代码说明:
1.对数组中的每个字典遍历
2.对每个字典中的键值对遍历
3.url中如果是第一个参数拼接时加上?
4.如果不是第一个参数拼接时加上&
5.把拼接好的字符串URL加入到可变数组中然后返回存有URL的数组
最终转换结果为:
2014-08-12 11:41:18.927 HelloOC[997:303] 转换完成:
(
"http://www.baidu.com?a=10&b=20",
"http://www.baidu.com?a=10&b=20&c=30",
"http://www.baidu.com?a=10&c=30"
)
2014-08-12 11:41:18.927 HelloOC[997:303] 转换完成:
(
"http://www.baidu.com?a=10&b=20",
"http://www.baidu.com?a=10&b=20&c=30",
"http://www.baidu.com?a=10&c=30"
)
以上就是objective-c中,数组中字典的数据转换成URL 的实现方法,如果大家看后赶脚还比较虚的话,建议根据上面的介绍,自己动手实现下。
OC中如何把字典中的数据拼接成url字符串的更多相关文章
- SQLserver将查询的字段中的数据 拼接成字符串用逗号隔开
,,'') 将查询的字段中的数据 拼接成字符串用逗号隔开
- Java将其他数据类型转换成JSON字符串格式
Student.java package com.demo.servlet; import java.util.List; import java.util.Map; public class Stu ...
- 签名:实现参数字典排序,然后拼接为url参数形式
在很多地方请求参数需要做处理例如: 步骤 1.参数字典排序. 2.拼接字符. /// <summary> /// 生成签名 /// </summary> /// <par ...
- 把DataTable中的数据拼接成XML时遇到的问题
错误信息:System.Web.Services.Protocols.SoapException: System.Web.Services.Protocols.SoapException: Serve ...
- Pycharm中怎么给字典中的多个键-值对同时加上单引号
今天看了个爬虫视频,崔庆才讲师的免费视频, 里面一个批量给header加引号2s完成,这波操作让我眼前一亮. 最终还是发现了骚操作的背后手速是真的快. pycharm中按ctrl+r 勾选右上角的Re ...
- Python中如何取字典中的键值
1 for k,v in DictName.items(): 2 #遍历字典的键值对,k对应键,v对应值 3 #k,v 的名字可以自己取,DictName是字典名 举例: tv_dict = {'芒果 ...
- 如何将Oracle中同一列的多行记录拼接成一个字符串
需要用wm_concat函数来实现. 如目前在emp表中查询数据如下: 要按照deptno相同的将ename以字符串形式合并,可用如下语句: 1 select deptno,wm_concat(ena ...
- SQL将表中某一类型的一列拼接成一行
SELECT TypeName ,(SELECT ','+ UserName FROM [ContainerMembers] t WHERE TypeName= aa.TypeName FOR XML ...
- 把字典的key value 拼接成字符串加上签名加密
- (NSString *)getSianKeyWithDic:(NSDictionary *)dic { //按字典排序 NSArray* arr = [dic allKeys]; arr = [a ...
随机推荐
- Binary Tree Level Order Traversal 解答
Question Given a binary tree, return the level order traversal of its nodes' values. (ie, from left ...
- LeeCode-Two Sum
Given an array of integers, find two numbers such that they add up to a specific target number. The ...
- 解决mongodb连接失败问题
错误提示: MongoDB shell version: 2.4.9 connecting to: test Mon Mar 3 23:45:09.491 Error: couldn't conne ...
- UIScollView Touch事件
customScrollView.h #import <UIKit/UIKit.h> @interface customScrollView : UIScrollView @end cus ...
- ios7 UITableView底线右移
在ios7上UITableView底线右移了,我们可以通过添加代码来让它铺满整个屏幕的宽,在使用前要加上判断是否有这个方法 if ([_tableView respondsToSelector:@se ...
- JAX-RS开发 hello world
1.建立maven webapp工程aty-rest. 2. 在pom文件增加spring框架.jax-rs接口.CXF实现 <dependency> <groupId>jav ...
- ios 文字图标
如何使用自定义字体 在讲icon font之前,首先先来看看普通自定义字体是如何在ios中使用的,两个原理是一样的.这里以KaushanScript-Regular为例: Step 1: 导入字体文件 ...
- SQL case when
jack 1tom 2anni 3poly 4 select buyer_name, ( case ' then '东' ' then '南' ' then '西' ' the ...
- u-boot基本命令
1.查看环境变量 printenv 2.网络相关命令 设置开发板ip:setenv ipaddr 192.168.2.110 设置子网掩码:setenv netmask 255.255.255.0 设 ...
- php中数字和字母生成随机字符串
function strrand($len) { $arr = array( "0", "1", "2", "3", & ...