سؤال

لدي هذا JSON من ASP MVC API لدي invmodel و lotmodel

ولكن عندما أتصل

_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);
        }];

لا أستطيع معرفة هذا الخطأ:

خطأ:خطأ في المجال = رمز JSONModelErrorDomain = 1 "بيانات JSON غير صالحة:محاولة تهيئة كائن JSONModel باستخدام initWithDictionary:error:لكن معلمة القاموس لم تكن "NSDictionary"."
UserInfo=0x109075ff0 {NSLocalizedDescription=بيانات JSON غير صالحة:محاولة تهيئة كائن JSONModel باستخدام initWithDictionary:error:لكن معلمة القاموس لم تكن "nsdictionary".

JSONData

وهنا نماذج JSON لـ:LotDTO

#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

وهنا نموذج الجرد

#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
هل كانت مفيدة؟

المحلول

أرى مشكلتين:

1) في InvModel الطبقة، لقد حددت LotDTO ككائن واحد، وليس مجموعة.

2) في استجابة JSON التي قمت بنشرها، فإن بناء الجملة لـ LotDTO لا يبدو لي صالحًا لـ JSON.يبدو أنها مجموعة من LotDTO الكائنات، ولكنها لا تتبع بناء جملة صفائف JSON (والتي يمكنك التحقق منها، على سبيل المثال، هنا).

نصائح أخرى

تأكد من تحديد أي خاصية ملحق كأجيال.واجهت هذه القضية تحاول نسخ النموذج.

يرجى استبدال هذا

giveacodicetagpre.

مع هذا

giveacodicetagpre.

كمسؤولين في JSONModel يشير إلى استخدام Convertondemand لتحويل NSARRAY إلى JSONMODELRAY في أحد البرنامج التعليمي الخاص بهم لتجنب الخطأ في عملية الانفعال.

قد يساعدك هذا: انقر هنا

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top