Я использую jsonmodel для сериализации операций. Я отправляю сообщение на сервер и получаю данные json. Я десериализую данные на этот объект.jsonmodel deserialize object
#import <Foundation/Foundation.h>
#import "JSONModel.h"
@interface ResultObject : JSONModel
@property (strong, nonatomic) NSObject<Optional> *Data;
@property (strong, nonatomic) NSString *ResultCode;
@property (strong, nonatomic) NSString *ResultMessage;
@property (strong, nonatomic) NSObject<Optional> *Exception;
@end
Я могу получить простые данные. Как логическое значение или строка. Но когда я пытаюсь передать данные в свой пользовательский объект. данные были повреждены. Я использую этот код для трансляции.
ResultObject *resultObject = [[ResultObject alloc]initWithString:result error:&error];
NSString *returnAnswer = [NSString stringWithFormat:@"%@",resultObject.Data];
LanguagePack *pack =[[LanguagePack alloc]initWithString:returnAnswer usingEncoding:NSASCIIStringEncoding error:&error];
двоеточие (:) изменение к равно (=) и запятых (,) изменение запятой (;) в returnAnswer так "пакет" является недействительным. Я не могу десериализовать данные json.
это мой LanguagePack
@interface LanguagePack : JSONModel
@property(strong,nonatomic) NSArray<LanguageString> *Data;
@end
и это мой LanguageString
@protocol LanguageString;
@interface LanguageString : JSONModel
@property (strong, nonatomic) NSString *DataKey;
@property (strong, nonatomic) NSString *DataValue;
@property (strong, nonatomic) NSString *DataDescription;
@property (strong, nonatomic) NSString *DataLanguage;
@end
Мой вопрос заключается в том, что как я могу десериализации данные JSon внутри NSObject (Data) для моих пользовательских объектов?
Edit Примечание: когда я смотрю на ResultObject.Data имеет 14 объектов (как должно быть), но каждый объект имеет ошибку:
ожидается «]» Ошибка: 1 ошибки разбора выражения
, как это ,
, и если я меняю NSObject<Optional> *Data
на NSArray<LanguageString> *Data
, он работает правильно. Но мне нужен общий тип, например NSObject.
Мои Json
{
"Data":[
{
"DataKey":"AppTemplate.CancelButton.Text",
"DataValue":"Iptal",
"DataDescription":"",
"DataLanguage":"TR"
},
{
"DataKey":"Exception.Code.07",
"DataValue":"SMS dogrulama kodu hatali ya da zaman asimina ugramis.",
"DataDescription":"SmsVerificationCodeNotVerifiedException",
"DataLanguage":"TR"
},
{
"DataKey":"Exception.Code.11",
"DataValue":"Geçersiz dil bilgisi.",
"DataDescription":"InvalidLanguageException",
"DataLanguage":"TR"
}
],
"ResultCode":"00",
"ResultMessage":"Success",
"Exception":null
}
Извините за мой английский и спасибо за помощь.
Я добавляю json на вопрос – sagnymine
это не т работы. та же проблема. «dataStr» является правильным. но «данные» в «ответе» повреждены. – sagnymine
http://imgur.com/4eyEJmO – sagnymine