MJExtension json快速解析

MJExtension

长话短说下面我们通过一个列子来看下怎么使用

1、 先把框架拉进去你的项目

2、 首先我这次用到的json最外层是一个字典,根据数据的模型我们可以把这个归类为字典中有数组,数组中还有其他 针对于这种情况 我需要建立两个数据模型 一个是要获取其中的数组 另一个数组中的的City元素

代码后面讲解思路

#import <Foundation/Foundation.h>

@interface NSCity : NSObject
@property (nonatomic,strong)NSString *city;
@property (nonatomic,strong)NSString *h5_url;
@property (nonatomic,strong)NSNumber* ID;
@property (nonatomic,strong)NSString *deal_url;
@end

//  NSCity.m
//  MJExtension example
//
//  Created by tareba on 15/12/18.
//  Copyright © 2015年
tanada. All rights reserved.
//

#import "NSCity.h"

@implementation NSCity
- (void)setValue:(id)value forUndefinedKey:(NSString *)key {
    if ([key isEqualToString:@"id"])
{
        self.ID=value;
    }
}
@end

#import <Foundation/Foundation.h>

@interface NSDeals : NSObject
@property (nonatomic,strong)NSMutableArray *deals;

@end

#import "NSDeals.h"
#import "MJExtension.h"
@implementation NSDeals

下面的方法是关键

、、
+ (NSDictionary *)mj_objectClassInArray
{
    return @{
             @"deals" :
@"NSCity",
          
             };
}
@end

#import "ViewController.h"
#import "MJExtension.h"

#import "NSCity.h"
@interface ViewController ()

@end
@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    NSURLRequest *request =[NSURLRequest
requestWithURL:[NSURL
URLWithString:@"http://api.dianping.com/v1/deal/find_deals?appkey=4123794720&category=%E7%BE%8E%E9%A3%9F&city=%E9%83%91%E5%B7%9E&region=%E9%87%91%E6%B0%B4%E5%8C%BA&sort=2&sign=FB7A61EB742A4B697B666985348614C7A8F763A3"]];
    NSURLSession *seesion = [NSURLSession
sharedSession];
    NSURLSessionDataTask *task =[seesion
dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data,
NSURLResponse * _Nullable response, NSError * _Nullable error) {
   
        NSDictionary *dic=
[NSJSONSerialization JSONObjectWithData:data
options:NSJSONReadingMutableContainers error:nil];
      
       
        NSDeals *result =[NSDeals
mj_objectWithKeyValues:dic];
       
       
        for (NSCity *city in
result.deals) {
           
NSLog(@"%lu",(unsigned long)result.deals.count);
           
NSLog(@"%@",city.deal_url);
        }
       
    }];
   
[task resume];
}

@end

这个方法是将json数据的层级关系,变成属性关系,下一层成为了上一层的属性,然后通过属性直接姐可以访问了。至于关键字成为属性,由于时间紧迫未来的及验证是否和平时利用
setvaluefor undefinekey的法解决是否相同 待验证后会尽快修改

时间: 2024-10-27 08:11:02

MJExtension json快速解析的相关文章

flutter json数据解析

在网上看了很多方法,整合了一下比较适合现在使用的.刚刚开始弄flutter,很多东西都不懂,以前也没有做过移动开发,很是懵逼 pubspec.yaml中添加需要的包 #httphttp: ^0.12.0+1 //dio 我在后面没有使用到,但是很多例子有用这个东西,我老是在使用的时候报奇奇怪怪的错,真的愁人# Dart Http请求库dio: ^2.1.0 flutter packages get 一下 使用了json生成工具,JSONFormat4Flutter 在这里可以下载到.使用方法,在

JSON快速入门

http://www.json.org/ documnt:http://stleary.github.io/JSON-java/index.html JSON快速入门(Java版)http://www.imooc.com/learn/523 转自:阮一峰大神的 <数据类型和Json格式>http://www.ruanyifeng.com/blog/2009/05/data_types_and_json.html 作者: 阮一峰 日期: 2009年5月30日 1. 前几天,我才知道有一种简化的数

Android之JSON全面解析与使用

Android之JSON全面解析与使用 什么是JSON JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) JSON 是轻量级的文本数据交换格式 JSON 独立于语言 (单纯的数据格式,不受语言的约束) JSON 具有自我描述性,更易理解 对于JSON的定义以及数据格式,没有什么太多的难点,这里为官网对JSON的定义.从官网描述中可以看出,JSON本身是JavaScript中对象的描述格式,后来得以推广并逐渐取代xml. JSON和XML的

json数据解析,并实现将网络json数据获取用listview显示

需要使用jar包 fastjson或gson这两个jar包. //Gson的使用方式 Gson gson=new Gson(); String str=ReadAssetsFile.readtext(this,"json_ss");//this当前类,"json_ss"需要解析的文件名 UserMessage userMessage=gson.fromJson(str,UserMessage.class);//需要解析的json文件最外层类名 //fastjson的

Android JSON原生解析的几种思路,以号码归属地,笑话大全,天气预报为例演示

Android JSON原生解析的几种思路,以天气预报为例 今天项目中要实现一个天气的预览,加载的信息很多,字段也很多,所以理清了一下思路,准备独立出来写一个总结,这样对大家还是很有帮助的,老司机要开车了 涉及到网络,你就一定要先添加权限,准没错 <!--网络权限--> <uses-permission android:name="android.permission.INTERNET" /> 一.归属地查询(JSONObject) 这个也是最简单的一类Json

cocos2dx 读取json及解析

ball.json 数据例如以下: { "entities": [ { "entity": { "TapOpposite": 0, "Interval": 0.95, "BallNum": 1 } }, { "entity": { "TapOpposite": 0, "Interval": 0.91, "BallNum": 2

用json方法解析webqq好友列表文本

本节课主要讲解了用json方法解析webqq好友列表文本,并显示在超级列表框里.相信大家看完本节课,会对json格式文本的解析有更深层次的理解. 用json方法解析webqq好友列表文本,布布扣,bubuko.com

Android JSON数据解析(GSON方式)

要创建和解析JSON数据,也可以使用GSON来完成.GSON是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库.使用GSON,可以很容易的将一串JSON数据转换为一个Java对象,或是将一个Java对象转换为相应的JSON数据. 1.GSON的两个重要方法 在GSON的API中,提供了两个重要的方法:toJson()和fromJson()方法.其中,toJson()方法用来实现将Java对象转换为相应的JSON数据,fromJson()方法则用来实现将JSON数据转换

JSON在线解析,新版本JSON在线解析

SOJSON,出了新版本的JSON在线解析,真的很好用,可以上下版本.左右版本.效果图如下.它的网址是:http://www.sojson.com/simple_json.html SOJSON集成了很多优秀的工具,它的网站:http://www.sojson.com/ JSON在线解析左右版本 JSON在线解析上下版本 JSON在线解析,JSON压缩 JSON在线解析,显示JSON数据类型 JSON在线解析,显示JSON 数组角标 赋值结果,测试Demo json