2014-12-03 3 views
1

이것이 가능한지 확실하지 않지만 노드의 속성을 노드의 속성 인 배열의 각 항목에 매핑하려고합니다. .JSONModel을 사용하여 중첩 된 사전의 속성에 부모 값을 매핑하십시오.

"productType" : { 
    "name" : "foo", 
    "products" : [] 
} 

JSON 예제 그래서 각 제품의 속성으로 이름의 값을합니다.

거기에 NSArray가 있고 모든 것이 JSONModel에 의해 매핑되는 productType 모델이 있습니다. JSONKeyMapper에서 keypath를 사용하는 방법이있을 수 있다고 생각하고 있었습니까? 그러나 아무것도 찾을 수 없습니다.

+0

* :

{ "productTypes": { "productType1": { "name": "foo", "products": [] }, "productType2": { "name": "foo", "products": [] }, "productType3": { "name": "foo", "products": [] } } } 

그런 다음이 같은 다른 모델을 사용한다 * 당신이 말하는 것을 이해한다면 (분명치 않다) 사전을 원한다. –

+1

그리고 간단하게 JSONModel을 버리고 NSJSONSerialization을 사용하고 코드에서 필요한 객체 매핑을 수행하는 것이 훨씬 낫습니다. –

+0

ProductType 모델과 Product 모델이 있습니다. ProductType에는 제품 배열이 있습니다. 이들은 JSONModel과 initWithDictionary를 통해 빌드됩니다. 그러나 Product 객체에서 ProductType.name을 가져올 수 있기를 원합니다. JSONModel에서 사용하는 keyMapper 메서드에서이를 매핑하는 방법이 있는지 궁금합니다. – RyanJohnstone

답변

0

이제 JSONModel으로이 작업을 수행 할 수 있습니다.

우리는 다음과 같은 모델을 가지고 가정 :

@class MyModel 

@property (strong, nonatomic) NSString *name; 
@property (strong, nonatomic) NSArray *products; 

@end 

전체 JSON의 문서는 다음과 같습니다 경우

{ 
    "productType1": { 
    "name": "foo", 
    "products": [] 
    }, 
    "productType2": { 
    "name": "foo", 
    "products": [] 
    }, 
    "productType3": { 
    "name": "foo", 
    "products": [] 
    } 
} 

다음 당신은 [MyModel dictionaryOfModelsFrom...]; 방법 중 하나를 사용합니다.


은 다음과 같습니다 경우 : 그래서 각 제품의 속성으로 이름의 값을 원하는

@class MyModelContainer 

@property (strong, nonatomic) NSDictionary <MyModel> *productTypes; 

@end