Question

J'ai ce JSON hors de l'API MVC ASP J'ai l'InvModel et le Lotmodel

mais quand j'appelle

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

Je n'arrive pas à comprendre cette erreur :

Erreur:Domaine d'erreur = JSONModelErrorDomain Code = 1 "Données JSON invalides :Tentative d'initialisation de l'objet JSONModel à l'aide de initWithDictionary:error :mais le paramètre du dictionnaire n'était pas un 'NSDictionary'."
UserInfo=0x109075ff0 {NSLocalizedDescription=Données JSON invalides :Tentative d'initialisation de l'objet JSONModel à l'aide de initWithDictionary:error :Mais le paramètre du dictionnaire n'était pas un «nsdictionary»., kjsonmodelkeypath = lotdto}

JSONData

et voici les JSONModels pour :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

Et ici le modèle d'inventaire

#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
Était-ce utile?

La solution

Je vois deux problèmes :

1) Dans le InvModel classe, tu as défini LotDTO comme un objet unique, pas un tableau.

2) Dans la réponse JSON que vous avez publiée, la syntaxe de LotDTO ne me semble pas valide JSON.Il semble qu'il s'agisse d'un ensemble de LotDTO objets, mais il ne suit pas la syntaxe des tableaux JSON (que vous pouvez vérifier, par exemple, ici).

Autres conseils

Assurez-vous de marquer toute propriété d'extension comme Ignore.J'ai rencontré un tel problème en essayant de copier le modèle.

Veuillez remplacer cette

@property (strong, nonatomic) InvLotModel* LotDTO;

avec cette

@property (strong, nonatomic) NSArray<InvLotModel,ConvertOnDemand>* LotDTO;

En tant que fonctionnaires de Jsonmodel suggérant d'utiliser Convertondemand pour convertir Nsarray en Jsonmodelarray dans l'un de leur tutoriel pour éviter toute erreur d'implanation.

Cela peut vous aider: Cliquez ici

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top