美文网首页
OC中如何把字典中的数据拼接成url字符串

OC中如何把字典中的数据拼接成url字符串

作者: Lee坚武 | 来源:发表于2019-12-28 15:26 被阅读0次

在使用[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 : [](http://www.tianya.cn/name/20)[@20](http://www.tianya.cn/name/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字符串

    在使用[objective-c语言]开发iOS应用中,会向服务器通过URL请求一些数据,因此对URL的拼接肯定少不...

  • 3_8拼接最小字典序

    对于一个给定的字符串数组,请找到一种拼接顺序,使所有小字符串拼接成的大字符串是所有可能的拼接中字典序最小的。 给定...

  • 拼接最小字典序

    题目 对于一个给定的字符串数组,请找到一种拼接顺序,使所有小字符串拼接成的大字符串是所有可能的拼接中字典序最小的。...

  • 算法(9) 拼接最小字符串

    描述对于一个给定的字符串数组,请找到一种拼接顺序,使所有小字符串拼接成的大字符串是所有可能的拼接中字典序最小的。给...

  • 问题:求最小字符串拼接序列

    对于一个给定的字符串数组,请找到一种拼接顺序,使所有小字符串拼接成的大字符串是所有可能的拼接中字典序最小的。不同于...

  • Python 系列教程| 字符串进阶

    上篇文章介绍了字符串的基本用法,本篇将介绍字符串内置函数以及进阶用法 字符串拼接 把列表中的数据拼接成一个字符串,...

  • Python超详细的字符串用法大全

    字符串拼接 实际场景:把列表中的数据拼接成一个字符串 解决方案:使用 str.join() 方法 推荐使用生成器表...

  • 超详细的字符串用法大全

    字符串拼接 实际场景:把列表中的数据拼接成一个字符串 解决方案:使用 str.join() 方法 推荐使用生成器表...

  • SpringMVC中的FlashMap

    我们都知道,重定向时一般都是不传数据的,如果一定要传数据,只能在URL中拼接字符串来传递,但是通过拼接字符串有缺点...

  • Swift - 字典 拼接成 URL字符串

    将字典中的键值对按照一定顺序拼接成到get 请求的参数中 var signParmeters : [String:...

网友评论

      本文标题:OC中如何把字典中的数据拼接成url字符串

      本文链接:https://www.haomeiwen.com/subject/dkysoctx.html