首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSONModel无效JSON数据

JSONModel无效JSON数据
EN

Stack Overflow用户
提问于 2013-11-15 18:44:23
回答 2查看 2.9K关注 0票数 0

我把这个Json从ASP.MVCAPI中拿出来,我有InvModel和LotModel

但当我打电话的时候

代码语言:javascript
复制
_InvFeed = [[InvModel alloc] initFromURLWithString:@"http://192.168.1.206/service/api/dto/inventory/1?p=Red%20Globe"
                                        completion:^(JSONModel *model, JSONModelError *err) 
        {
            NSLog(@"Inventory: %@", _InvFeed );
            NSLog(@"Error: %@",err);
        }];

我找不出这个错误:

Error: Error Domain=JSONModelErrorDomain Code=1 “无效的JSON数据:试图使用initWithDictionary:error:但字典参数不是‘NSDictionary’初始化JSONModel对象”。 UserInfo=0x109075ff0 {NSLocalizedDescription=Invalid JSON数据:尝试使用initWithDictionary:error:初始化JSONModel对象:但是字典参数不是‘NSDicary.kJSONModelKeyPath=LotDTO}

下面是JSONModels for: LotDTO

代码语言:javascript
复制
#import "JSONModel.h"

@interface InvLotModel : JSONModel
@property (assign, nonatomic) int lotid;
@property (strong, nonatomic) NSDate* expdate;
@property (strong, nonatomic) NSString* lotserial;
@property (strong, nonatomic) NSDate* lastupddate;
@property (strong, nonatomic) NSString<Optional>* providerlotserial;
@property (assign, nonatomic) NSDecimal* qtyoriginal;
@property (assign, nonatomic) NSDecimal* qtyallocated;
@property (assign, nonatomic) NSDecimal* qtyavailable;
@property (assign, nonatomic) NSDecimal* qtyonhand;
@property (strong, nonatomic) NSDate* receiptdate;
@property (strong, nonatomic) NSString* linecomment;
@property (assign, nonatomic) NSDecimal* unitcost;
@property (strong, nonatomic) NSString* warehouse;
@end

在这里,库存模型

代码语言:javascript
复制
#import "JSONModel.h"
#import "InvLotModel.h"
@protocol InvModel @end
@interface InvModel : JSONModel
@property (assign, nonatomic) int id;
@property (strong, nonatomic) NSString* itemid;
@property (strong, nonatomic) NSString* description;
@property (strong, nonatomic) NSDate* createdate;
@property (strong, nonatomic) NSString* createuser;
@property (assign, nonatomic) float lastcost;
@property (assign, nonatomic) BOOL monitorlevel;
@property (assign, nonatomic) int minlevel;
@property (assign, nonatomic) int maxlevel;
@property (strong, nonatomic) NSString* gtin;
@property (assign, nonatomic) float weight;
@property (strong, nonatomic) NSString* uom;
@property (strong, nonatomic) NSString* sizes;
@property (strong, nonatomic) NSString* variety;
@property (strong, nonatomic) NSString <Optional>* bag;
@property (strong, nonatomic) NSString* style;
@property (strong, nonatomic) NSString* box;
@property (strong, nonatomic) NSString* label;
@property (strong, nonatomic) NSString* commodity;

@property (strong, nonatomic) InvLotModel* LotDTO;
@end
EN

回答 2

Stack Overflow用户

发布于 2015-07-09 06:51:50

确保将任何扩展属性标记为Ignore。我面临着这样一个问题,试图模仿这个模型。

票数 0
EN

Stack Overflow用户

发布于 2015-08-11 13:46:47

请把这个换一下

代码语言:javascript
复制
@property (strong, nonatomic) InvLotModel* LotDTO;

有了这个

代码语言:javascript
复制
@property (strong, nonatomic) NSArray<InvLotModel,ConvertOnDemand>* LotDTO;

正如JSONModel的官员建议的那样,在他们的教程中使用ConvertOnDemand将NSArray转换为JSONModelArray,以避免在实现过程中出现错误。

这可能对你有帮助:单击此处

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20008337

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档