2012-08-11 7 views
2

레스 키트 문서는 상당히 훌륭하고 객체 모델링에 대한 다양한 예제가 있습니다. 중첩 매핑의 예도 있지만,이 시나리오와 조금 다른 시나리오가 있습니다. RestKit 문서는 다음 json 형식으로 중첩 된 특성의 예제 매핑을 제공합니다. RestKit 문서에서RestKit 동적 중첩 매핑

샘플 JSON 구조 :

{ 
    "blake": {   
    "email": "[email protected]",   
    "favorite_animal": "Monkey"  
    },  
    "sarah": { 
    "email": "[email protected]", 
    "favorite_animal": "Cat" 
    } 
} 

내 JSON이 같은 조금 다르다는 것을 가정;

내 JSON 구조 :

{ 
    "id" : 1, 
    "author" : "RestKit", 
    "blake": {   
    "email": "[email protected]",   
    "favorite_animal": "Monkey"  
    },  
    "sarah": { 
    "email": "[email protected]", 
    "favorite_animal": "Cat" 
    } 
} 

나는 다음과 같은 특성과 많은 관계로 두 개의 서로 다른 managedobject 모델을 만들었습니다.

내 구조의 두 개의 엔티티 제품 및 작성자가 위 JSON 객체를 매핑합니다.

이제
Product           Creator 

identifier   <------------------- >>  name 
author           email 
                favouriteAnimal 

, 제품 모델과 같을 것이다 나의 매핑 될 것이다;

이것은 제품 엔터티를 매핑하는 방법입니다. [매핑 mapKeyPath : "id"toAttribute : "identifier"]; [mapKeyPath : "author"매핑 toAttribute : "author"];

하지만 여기서 중첩 된 사전 특성을 매핑하는 것은 저에게 효과적이지 않습니다. // [mapKeyOfNestedDictionaryToAttribute 매핑 : @ "제작자"];

이제는 authors 클래스에 있습니다.

위의 JSON 구조를 매핑하는 일반적인 방법을 이해하지 못했습니다.

+0

어떤 관계입니까? 귀하의 질문은 무엇인가? –

+0

질문이 제대로 표시되지 않는 이유는 무엇입니까? – Sandeep

+0

"?" 그 문제의 주제 (이 관계)는 언급되지 않았다. RestKit 예제는 관련이 없습니다. –

답변

6

당신이 웹 서비스를 제어 할 수 있다면, 난 강력하게 다음과 같이 응답 데이터를 재구성 추천 할 것입니다 :이 구조에 따라

{ 
    product: 
    { 
    id: 1, 
    author: 'RestKit', 
    creators: [ 
     { 
     id: 1, 
     name: 'Blake', 
     email: '...', 
     favorite_animal: 'Monkey' 
     }, 
     { 
     id: 2, 
     name: 'Sarah', 
     email: '...', 
     favorite_animal: 'Cat' 
     } 
    ] 
    } 
} 

, 당신은 RestKit의 중첩 된 매핑 기능을 사용할 수있을 거라고, 그리고 관계 개체 로더 대리자가받은 deserialized 개체에 올바르게 반영됩니다. RestKit은 명명 및 구조 표준을 사용하여 작업을 수행하는 데 필요한 코드를 단순화합니다. 귀하의 사례는 키 - 값 코딩 표준에서 벗어나므로 RK는 귀하의 데이터 형식과 상호 작용할 수있는 쉬운 방법을 제공하지 않습니다.

액세스 할 수 없거나 변경할 수없는 경우 알려진 키 - 값 쌍을 매핑으로 매핑하고 나머지 할당을 맞춤식 평가자와 함께 수행해야합니다. 알 수없는 키는 실제로 연결된 제작자의 이름 값이고 관련 값은 각각에 대한 속성 해시를 포함한다고 가정해야합니다. 이를 사용하여 각 객체를 수동으로 재구성합니다.