gpt4 book ai didi

ios - 使用 JsonModel 解析 json

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:22:27 25 4
gpt4 key购买 nike

在获取 json 数组时遇到问题。

我正在使用 JsonModel 库进行 json 处理。

我的 json 数据是:

[
{
"TSCard_id": 100,
"TSCardBackend_id": "TSu1t1",
"TSCard_date": "10/11/2013",
"TSCard_resource_id": "",
"TSCard_resource_name": "",
"TSCard_job_id": "JOB_M2156 ",
"TSCard_job_desc": "BAGARIA MILLIPORE - BOM ",
"TSCard_activity_id": "B03",
"TSCard_activity_desc": "Closing",
"TSCard_hours": "4.0",
"TSCard_chargeableflag": "0",
"TSCard_desc": "Description:",
"TSCard_syncflag": "0",
"TSCard_flag": "",
"user_id": "1"
},
{
"TSCard_id": 101,
"TSCardBackend_id": "TSu1t2",
"TSCard_date": "12/11/2013",
"TSCard_resource_id": "",
"TSCard_resource_name": "",
"TSCard_job_id": "JOB_B0002",
"TSCard_job_desc": "ABB LIMITED - BLR ",
"TSCard_activity_id": "NB01",
"TSCard_activity_desc": "Admin ",
"TSCard_hours": "5.0",
"TSCard_chargeableflag": "1",
"TSCard_desc": "Description:",
"TSCard_syncflag": "0",
"TSCard_flag": "",
"user_id": "1"
}
]

上面的json有2个类型为TSCard类的对象

 //TSCard.h
#import <Foundation/Foundation.h>
#import <JSONModel.h>

@protocol TSCard @end

@interface TSCard : JSONModel

@property (nonatomic, retain) NSString *TSCard_id;
@property (nonatomic, retain) NSString *TSCardBackend_id;

@property (nonatomic, retain) NSString *TSCard_date;
@property (nonatomic, retain) NSString *TSCard_resource_id;
@property (nonatomic, retain) NSString *TSCard_resource_name;
@property (nonatomic, retain) NSString *TSCard_job_id;
@property (nonatomic, retain) NSString *TSCard_job_desc;
@property (nonatomic, retain) NSString *TSCard_activity_id;
@property (nonatomic, retain) NSString *TSCard_activity_desc;
@property (nonatomic, retain) NSString *TSCard_hours;
@property (nonatomic, retain) NSString *TSCard_chargeableflag;
@property (nonatomic, retain) NSString *TSCard_desc;
@property (nonatomic, retain) NSString *TSCard_syncflag;
@property (nonatomic, retain) NSString *TSCard_flag;
@property (nonatomic, retain) NSString *user_id;

@end

我正在为 TSCard 类型的数组创建一个类

 //GetCardData.h

#import <JSONModel.h>
#import "TSCard.h"


@interface GetCardData : JSONModel

@property(strong,nonatomic)NSArray<TSCard>* myDataArray;

@end

然后我解析 json 如下:

NSError* err = nil;
GetCardData *c = [[GetCardData alloc] initWithString:jsonString error:&err];

NSLog(@"%d",c.myDataArray.count);

NS日志错误:Error Domain=JSONModelErrorDomain Code=1 “无效的 JSON 数据:尝试使用 initWithDictionary 初始化 JSONModel 对象:错误:但字典参数不是‘NSDictionary’。” UserInfo=0x8265490 {NSLocalizedDescription=无效的 JSON 数据:尝试使用 initWithDictionary 初始化 JSONModel 对象:错误:但字典参数不是“NSDictionary”。

我找不到我哪里错了...任何人都可以建议使用 JsonModel 并将 jsonString 正确解析为 TSCard 对象数组的正确方法。

最佳答案

尝试使用以下代码解析您的 json 并获取数组

NSMutableArray *yourArray = [TSCard arrayOfModelsFromDictionaries:jsonString];

比创建和分配

GetCardData *objCardData = [[GetCardData alloc] init];
objCardData.myDataArray = yourArray;

或者您需要按照以下方式更改您的 JSONString

   {
"myDataArray": [
{
"TSCard_id": 100,
"TSCardBackend_id": "TSu1t1",
"TSCard_date": "10/11/2013",
"TSCard_resource_id": "",
"TSCard_resource_name": "",
"TSCard_job_id": "JOB_M2156 ",
"TSCard_job_desc": "BAGARIA MILLIPORE - BOM ",
"TSCard_activity_id": "B03",
"TSCard_activity_desc": "Closing",
"TSCard_hours": "4.0",
"TSCard_chargeableflag": "0",
"TSCard_desc": "Description:",
"TSCard_syncflag": "0",
"TSCard_flag": "",
"user_id": "1"
},
{
"TSCard_id": 101,
"TSCardBackend_id": "TSu1t2",
"TSCard_date": "12/11/2013",
"TSCard_resource_id": "",
"TSCard_resource_name": "",
"TSCard_job_id": "JOB_B0002",
"TSCard_job_desc": "ABB LIMITED - BLR ",
"TSCard_activity_id": "NB01",
"TSCard_activity_desc": "Admin ",
"TSCard_hours": "5.0",
"TSCard_chargeableflag": "1",
"TSCard_desc": "Description:",
"TSCard_syncflag": "0",
"TSCard_flag": "",
"user_id": "1"
}
]
}

您的代码肯定会起作用。如果需要更多帮助,请告诉我。

关于ios - 使用 JsonModel 解析 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20267152/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com