iOS开荒奉行之JSON,jQuery获取地址栏中的链接参数实例

iOS开发实践之JSON

服务器返回给客户端的数据,一般都是JSON格式或者XML格式(文件下载除外),JSON和XML的比较这里不详述。
总的来说XML文件庞大,文件格式复杂,解析需要花费较多的资源和时间,传输占带宽。JSON数据格式比较简单,易于读写,格式都是压缩的,占用带宽小,移动开发首选。

betway必威亚洲官网,JSON:

1、JSON的格式很像OC中的字典和数组

{“name” : “jack”, “age” : 10}
{“names” : [“jack”, “rose”, “jim”]}
标准JSON格式的注意点:key必须用双引号

JSON – OC 转换对照表:

betway必威亚洲官网 1betway必威亚洲官网 2

 

2、在iOS中,JSON的常见解析方案有4种
第三方框架:JSONKit、SBJson、TouchJSON(性能从左到右,越差)
苹果原生(自带):NSJSONSerialization(性能最好)

NSJSONSerialization的常见方法:
2.1、JSON 转 OC对象(其中的过程是json转换为字典,字典再转换为对象)

  • (id)JSONObjectWithData:(NSData *)data
    options:(NSJSONReadingOptions)opt error:(NSError **)error;

例子: 请求服务器,返回json数据。json数据封装到数组对象中。

服务器返回数据json格式:

betway必威亚洲官网 3

 

- (void)viewDidLoad {
    [super viewDidLoad];

    NSURL *url = [NSURL URLWithString:@"http://localhost:8080/myService/video"];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) {
        if (connectionError || data==nil) {
            [MBProgressHUD showError:@"网络繁忙,请稍后再试!"];
            return ;
        }

        //json 转化为data 得到字典
        NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil];
        //取出字典中的某一个key
        NSArray *videoArray = dict[@"videos"];
        //字典转模型
        for (NSDictionary *videoDict in videoArray) {
            //字典转模型(对象)
            Video *video = [Video videoWithDict:videoDict];
            [self.videos addObject:video];
        }

    }];

 }

2.2、OC对象 转JSON数据 (对象转字典,字典再转json)

  • (NSData *)dataWithJSONObject:(id)obj
    options:(NSJSONWritingOptions)opt error:(NSError **)error;

    #import “ViewController.h”
    #import “Person.h”

    @interface ViewController ()
    @property(nonatomic,strong) Person *person;
    @end

    @implementation ViewController

    • (void)viewDidLoad {
      [super viewDidLoad];

      _person = [[Person alloc]init];
      _person.name = @”kobe”;
      _person.age = 24;
      _person.sex = @”男”;
      _person.phone = @”1112334444″;

      }

      -(void)touchesBegan:(NSSet )touches withEvent:(UIEvent )event{
      //person 转字典
      NSMutableDictionary *dict = [NSMutableDictionary dictionary];
      dict[@”age”] = [NSString stringWithFormat:@”%d”,self.person.age];
      dict[@”name”] = self.person.name;
      dict[@”sex”] = self.person.sex;
      dict[@”phone”] = self.person.phone;

      NSData data = [NSJSONSerialization dataWithJSONObject:dict options:NSJSONWritingPrettyPrinted error:nil];
      NSString
      dataStr = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
      NSLog(@”%@”,dataStr);

}

@end

结果:

{
“age” : “24”,
“sex” : “男”,
“phone” : “1112334444”,
“name” : “kobe”
}

NSJSONReadingOptions枚举:

NSJSONReadingMutableContainers:返回可变容器,NSMutableDictionary或NSMutableArray。
NSJSONReadingMutableLeaves:返回的JSON对象中字符串的值为NSMutableString
NSJSONReadingAllowFragments:允许JSON字符串最外层既不是NSArray也不是NSDictionary,但必须是有效的JSON
Fragment。
NSJSONWritingPrettyPrinted:的意思是将生成的json数据格式化输出,这样可读性高,不设置则输出的json字符串就是一整行。

服务器返回给客户端的数据,一般都是JSON格式或者XML格式(文件下载除外),JSON和XML的比较这里不详述。
总的来说XML文…

要怎么获取url地址栏链接参数呢,我们可以通过和种方法来,但获取url地址我必须使用window.location.href,然后再通过正则来匹配即可。

Win7系统IE浏览器中百度贴吧文章的删除方法

 
我们有时候会在百度贴吧写东西,最近有些Win7系统用户使用IE浏览器登录百度贴吧后发现某篇内容很糟糕想删除它,但是找不到删除位置。如何删除自己的帖子呢?其实,删除方法很简单,下面就为大家介绍具体的删除步骤。

       具体删除步骤如下:

      
1、连上网,打开浏览器进入到百度贴吧,找到自己所发表的帖子,点击进入,如下图所示:

betway必威亚洲官网 4

      
2、进入到帖子之后,在一楼自己发表内容的位置,选择箭头位置的“删除”。

betway必威亚洲官网 5

      
3、在这里再次点击“确定”完成删除,删除之后这个帖子的内容都没有了。另外也可以私信联系贴吧的吧务,小吧主、吧主等删除。

betway必威亚洲官网 6

      
4、百度贴吧删除自己回复的内容,找到自己发表内容的楼层,然后把鼠标移动到箭头位置,会出现删除的按钮,点击删除。

betway必威亚洲官网 7

       5、在这里再次“确认”删除即可。

betway必威亚洲官网 8

      
以上就是百度贴吧文章的删除方法,要是大家觉得自己的某篇百度贴吧内容不满意或者需要删除的话,可以试试上述方法解决。

我们有时候会在百度贴吧写东西,最近有些Win7系统用户使用IE浏览器登录百度贴吧后发现某篇内…

假设页面的地址是这样子的。/p/165
,那么我要获取最后的一个数字165,可以通过这样子的代码

 代码如下

复制代码

var url= window.location.href;
var index = url.substring(url.lastIndexOf(‘/’) + 1);

但是这样子有缺陷,假如我获取到的地址不是这样子的形式,而是/tools的话,那么这个index的值就不是一个数字了。

解决方案

下面这种可能会更好呢?

 代码如下

复制代码

var lastBit = url.substring(url.lastIndexOf(‘/’) +
1).match(/[^/]*$/)[0];
var lastDigits = url.substring(url.lastIndexOf(‘/’) +
1).match(/[0-9]*$/)[0]; 

// 获取的是数字部分获取查询值

发表评论

电子邮件地址不会被公开。 必填项已用*标注

标签:
网站地图xml地图