我正在使用 jsonmodel 进行序列化操作。我将帖子发送到服务器并获取 json 数据。我将数据反序列化为这个对象。
#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 中的冒号 (:) 更改为 equals(=),逗号 (,) 更改为分号 (;),因此“pack”为空。我无法反序列化 json 数据。
这是我的语言包
@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
我的问题是如何将 NSObject(Data) 中的 json 数据反序列化为我的自定义对象?
编辑注意:当我查看 ResultObject.Data 它有 14 个对象(应该是)但每个对象都有一个错误:
预期的 ']' 错误:1 解析表达式错误
像这样。
如果我改变NSObject<Optional> *Data
它NSArray<LanguageString> *Data
可以正常工作。但我需要一个像 NSObject 这样的泛型类型。
我的杰森
{
"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
}
对不起我的英语并感谢您的帮助。