2012-12-19 4 views
0

내 API에는 이처럼 JSON 출력이 있습니다.CoreData JSON 매핑

{ 
"restaurants": [{ 
    "Restaurant": { 
     "id": "3", 
     "name": "...", 
     "slug": "...", 
     "phone": "2161234567", 
     "address": "...", 
     "city_id": "34", 
     "county_id": "426", 
     "discount_type_id": null, 
     "discount": "", 
     "people_limit": "2", 
     "reservations_required": false, 
     "lat": "41.015608", 
     "lon": "28.934834", 
     "about": "...", 
     "logo": "...", 
     "logo_dir": "3", 
     "photo_1": "...", 
     "photo_2": null, 
     "photo_3": null, 
     "photo_dir": "3", 
     "created": "2012-11-30 16:30:21", 
     "modified": "2012-11-30 20:43:50", 
     "deleted": true 
    }, 
    "AvailabilityRestriction": [{ 
     "id": "1", 
     "title": "...", 
     "AvailabilityRestrictionRestaurant": { 
      "id": "28", 
      "restaurant_id": "3", 
      "availability_restriction_id": "1" 
     } 
    }], 
    "CuisineTag": [{ 
     "id": "3", 
     "name": "...", 
     "CuisineTagRestaurant": { 
      "id": "47", 
      "restaurant_id": "3", 
      "cuisine_tag_id": "3" 
     } 
    }] 
}, 

... 
} 

식당에는 다양한 요리 기술 및 가용성 제한 사항이 있습니다. 또한 도시 테이블이 있습니다 ... 그들을 동기화하는 가장 좋은 방법은 무엇입니까?

먼저 도시, cuisine_tags 및 availability_restrictions를 동기화해야합니다. 그런 다음 레스토랑을 만들 때 해당 항목을 일치시킬 수 있습니까? 이것이 올바른 방법일까요?

감사합니다.

답변

0

나는

당신은 레스토랑 객체 내에서 "레스토랑"모든 속성 (즉 restirctions, 요리-태그)를해야한다 .... 이런 식으로 할 것.
{ 
    "Restaurants" : [ 
     { 
      "id" : "3", 
      "name" : "...", 
      "slug" : "...", 
      "phone" : "2161234567", 
      "address" : "...", 
      "city_id" : "34", 
      "county_id" : "426", 
      "discount_type_id" : null, 
      "discount" : "", 
      "people_limit" : "2", 
      "reservations_required" : false, 
      "lat" : "41.015608", 
      "lon" : "28.934834", 
      "about" : "...", 
      "logo" : "...", 
      "logo_dir" : "3", 
      "photo_1" : "...", 
      "photo_2" : null, 
      "photo_3" : null, 
      "photo_dir" : "3", 
      "created" : "2012-11-30 16:30:21", 
      "modified" : "2012-11-30 20:43:50", 
      "deleted" : true, 
      "AvailabilityRestrictions" : [ 
       { 
        "id" : "1", 
        "title" : "..." 
       }, 
       { 
        "id" : "2", 
        "title" : "..." 
       } 
      ], 
      "CuisineTags" : [ 
       { 
        "id" : "3", 
        "name" : "..." 
       } 
      ] 
     } 
    ] 
} 

는 또한 "레스토랑"개체를 제거

, 그것은 불필요한입니다 :

다음은 예입니다. 식당이라고하는 배열이 있다면. 나는 단지 /에 그것으로부터 음식점을 넣고 싶다.

나는 당신이 당신의 질문에 더 많은 것이 있다고 생각하지만, 당신이 필요한 것을 이해하는 데 어려움을 겪었습니다. 핵심 데이터에서 관계를 설정하는 방법에 대해 이야기하고 있습니까?

cruisine 태그와 도시 간의 관계를 설정하려는 경우이 방법이 JSON 응답을 반복 할 수 있기 때문에 가장 좋은 방법이라고 생각합니다. 속성 중 하나가 목록이면 목록을 확인할 수 있습니다. 올바른 관리 객체를 가져 와서 관계를 만듭니다.

분명히 명확해야 할 점은, 다른 도시의 미리 정의 된 크루즈 태그를 유지해야한다는 것입니다. API를 간단하고 유연하게 유지하려고합니다.

+0

예 이제 JSON을 이렇게 다시 포맷하려고합니다. CoreData가 필드를이 서식으로 자동으로 일치시킬 수 있습니까? "도시"테이블은 어떻습니까? city_id와 어떻게 일치합니까? – sonereker

+0

먼저 이것을 읽으십시오 : http://www.cimgf.com/2011/06/02/saving-json-to-core-data/ 그리고 그것을 완전히 이해하십시오. API를 변경하여 앱을 엉망으로 만들고 싶지는 않습니다. – mkral

+0

Core Data를 처음 접한다면 'Magical Record'를 확인하고이 글을 읽고 올바르게 스레드하는 법을 이해해야합니다. http://www.cimgf.com/2011/05/04/core-data-and -threads-without-the-headache/ – mkral