事实上,我不使用 Mantle,但为了验证,我使用了另一个 GitHub 库,名为RPJSONValidator
它告诉您您期望的类型以及该值已到达的类型。
一个简单的示例代码
NSError *error;
[RPJSONValidator validateValuesFrom:json
withRequirements:@{
@"phoneNumber" : [RPValidatorPredicate.isString lengthIsGreaterThanOrEqualTo:@7],
@"name" : RPValidatorPredicate.isString,
@"age" : RPValidatorPredicate.isNumber.isOptional,
@"weight" : RPValidatorPredicate.isString,
@"ssn" : RPValidatorPredicate.isNull,
@"height" : RPValidatorPredicate.isString,
@"children" : RPValidatorPredicate.isArray,
@"parents" : [RPValidatorPredicate.isArray lengthIsGreaterThan:@1]
} error:&error];
if(error) {
NSLog(@"%@", [RPJSONValidator prettyStringGivenRPJSONValidatorError:error]);
} else {
NSLog(@"Woohoo, no errors!");
}
每个键值对描述每个 JSON 值的要求。例如,键值对@"name"
:RPValidatorPredicate.isString
将要求带有键“name”的 JSON 值是NSString
. 我们还可以链接需求。例如,@"age"
:RPValidatorPredicate.isNumber.isOptional
将要求“age”的值是NSNumber
,但前提是它存在于 JSON 中。