JSONModel بيانات JSON غير صالحة
-
20-12-2019 - |
سؤال
لدي هذا 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".
وهنا نماذج 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 في أحد البرنامج التعليمي الخاص بهم لتجنب الخطأ في عملية الانفعال.
قد يساعدك هذا: انقر هنا