iOS数据解析之JSON解析

  • JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,易于阅读和编写,同时也易于机器解析和生成
  • JSON文件有两种结构:

    1 对象:”名称/值”对的集合,以”{“开始,以”}”结束,名称和值中间用”:”隔开

    2 数组:值的有序列表,以”[“开始,以”]”结束,中间是数据,数据以”,”分隔

    (JSON中的而数据类型:字符串、数值BOOL、对象、数组)

    例如:

{

"reason": "success",
"result": [
  {
      "movieId": "215977",
      "movieName": "森林孤影",
      "pic_url": "http://v.juhe.cn/movie/picurl?2583247"
  },
  {
      "movieId": "215874",
      "movieName": "从哪来,到哪去",
      "pic_url": "http://v.juhe.cn/movie/picurl?2583542"
  },
  {
      "movieId": "215823",
      "movieName": "有一天",
      "pic_url": "http://v.juhe.cn/movie/picurl?2583092"
  }
],
"error_code": 0

 }

进行JSON解析步骤

  1. 获取JSON文件路径
  2. 转换为NSData类型
  3. 解析JSON数据

代码如下:

- (void)jsonParser {
  //step1:文件路径
  NSString *jsonPath = [[NSBundle mainBundle] pathForResource:@"MovieList" ofType:@"txt"];
  //step2:转换为NSData类型
  NSData *jsonData = [NSData dataWithContentsOfFile:jsonPath];
  //step3.解析json数据
  NSError *error;
  //第二个参数:
  //NSJSONReadingMutableContainers = (1UL << 0),解析完成返回的为可变的数组或者字典类型。
  //NSJSONReadingMutableLeaves = (1UL << 1),解析完成返回的类型为NSMutableString,在iOS7及其以上不太好用。
  //NSJSONReadingAllowFragments = (1UL << 2)允许json串最外层既不是数组也不是字典,但必须是有效的json片段,例如json串可以是一段字符串。
  NSDictionary *resultDic = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingAllowFragments error:&error];
  if (resultDic) {//判断解析是否得到正常数据

    //判断当前对象是否支持json格式
    if([NSJSONSerialization isValidJSONObject:resultDic]){
    //将字典转换为json串
      NSData *strData = [NSJSONSerialization dataWithJSONObject:resultDic options:NSJSONWritingPrettyPrinted error:&error];
      //判断strData是否有值
      if (strData) {
          //将data转换为字符串
          NSString *str = [[NSString alloc] initWithData:strData encoding:NSUTF8StringEncoding];
          NSLog(@"%@",str);
      }
    }
  }
}
时间: 2024-10-05 06:30:27

iOS数据解析之JSON解析的相关文章

iOS之网络数据下载和JSON解析

iOS之网络数据下载和JSON解析 简介 在本文中笔者主要给大家介绍IOS如何利用NSURLConnection从网络上下载数据,如何解析下载下来的JSON数据格式,以及如何显示数据和图片的异步下载显示. 涉及到的知识点: 1.NSURLConnection 异步下载和封装 2.JSON格式和JSON格式解析 3.数据显示和使用SDWebImage异步显示图片 内容 1.网络下载基础知识介绍 什么是网络应用? 需要通过联网进行操作的应用 网络应用的程序结构? c/s结构:即客户端/服务端 常见的

ios的网络数据下载和json解析

ios的网络数据下载和json解析 简介 在本文中,笔者将要给大家介绍如何使用nsurlconnection 从网上下载数据,以及解析json数据格式,以及如何显示数据和图片的异步下载显示. 涉及的知识点: NSYRLConnection异步下载和封装 JSON格式和JSON格式解析 数据显示和使用SDwebimage异步下载图片 内容 网络下载基础知识介绍 NSURLConnection使用 JSON格式说明和格式化工具 一个完成页面的实现(包含model和SDWebimage) 什么是网络应

iOS网络数据下载和JSON解析

iOS网络数据下载和JSON解析 简介 在本文中笔者将要给大家介绍iOS中如何利用NSURLConnection如何从网络中下载数据,如何解析下载下来的JSON数据格式,以及如何显示数据和图片的异步下载显示. 涉及到的知识点: 1.NSURLConnection异步下载和封装 #import "ZJHttpRequest.h" //消除performSelector的警告 #pragma clang diagnostic ignored "-Warc-performSelec

ios 网络数据下载和JSON解析

ios 网络数据下载和JSON解析 简介 在本文中笔者将要给大家介绍ios中如何利用NSURLConnection从网络上下载数据,如何解析下载下来的JSON数据格式,以及如何显示数据和图片的异步下载显示 涉及到得知识: 1.NSURLConnection异步下载和封装 2.JSON格式和JSON格式解析 3.数据显示和使用SDWebImage异步显示图片 内容 1.网络下载基础知识介绍 (1)什么是网络应用? 一般情况下, iPhone的计算机, 照相机不需要从网络上下载数据也能运行, 所以这

iOS之 网络数据下载及JSON解析

网络数据下载及JSON解析 简介 在本文章中笔者将要为大家介绍ios中任何利用NSRULConnection从网络上下载数据,如何解析下来的JSON 格式的数据,以及如何显示数据和图片的异步下载 有关的知识点 1.NSRULConnection的异步下载以及封装 2.JSON格式和JSON格式的解析 3.数据显示以及SDWebImage异步显示图片 内容 1.网络下载基础知识介绍 什么是网络应用? 网络应用的程序结构 常见的网络接口形式 常见的数据格式 界面开发的一般流程 2.NSRULConn

网络数据下载和JSON解析

ios之网络数据下载和JSON解析 简介 在本文中笔者将要给大家介绍iOS中如何利用NSURLConnection从网络上,下载数据,以及如何解析下载下来的JSON数据格式,以及如何显示数据和图片的异步下载显示. 涉及到的知识点有: 1.NSURLConnection异步下载和封装 2.JSON格式和JSON格式解析 3.数据显示和使用SDWebImage异步显示图片 内容 1.网络下载基础知识介绍 什么是网络应用? 对于iOS开发来说的网络应用,笔者觉得需要通过访问网络,获取服务端数据来实现全

IOS 开发之网络数据下载和JSON解析

简介 在本文中,我将给大家介绍ios中如何运用NSURLConnection从网络上下载数据,以及解析JSON数据格式的数据,还有数据的显示和图片异步下载. 涉及到的知识点: 1.NSURLConnection的异步下载和数据请求方法的封装. 2.认识JSON格式和JSON格式的解析使用 3.数据在模拟器上的显示和图片的异步下载(使用SDWebImage异步显示图片,SDWebImage是一个库) 注意: 在ios开发中,无论是数据还是图片都是使用异步下载方法,不能使用同步. 内容 首先,要完成

iOS网络编程开发—JSON解析与XML解析

一.什么是JSON JSON是一种轻量级的数据格式,一般用于数据交互 服务器返回给客户端的数据,一般都是JSON格式或者XML格式(文件下载除外) JSON的格式很像OC中的字典和数组 {"name" : "jack", "age" : 10} {"names" : ["jack", "rose", "jim"]} 标准JSON格式的注意点:key必须用双引号 要想从

数据解析2:JSON解析(1)

JSON是网络传输中数据组织的一种格式. 下面为几个不同的JSON数据: 1."{name:'jack',age:23}" 2."{student:{name:'jack',age:23}}" 3."{students:[{name:'jack',age:23},{name:'lily',age:22}]}" 4."{object:{persons:[{name:'呵呵',image:'http://192.168.56.1:8080/