2012-11-25 4 views
0

I는 서버로부터지도 (사전)을 나타내는 몇 가지 JSON 문자열을했습니다.JSONKit : JSON 사전 키의 순서를 유지하는 방법을

나는 내 아이폰 앱 @이기 때문에이지도를 그릴 필요가있다.

그래서 내가 열쇠를 주문하는 우선 순위 번호를 보내야합니다 .... 나는 JSONKit을 이용하고 있고 내부 JKDictionary에 키를 삽입하는 기능을 해싱 사용하는 것? 아니면 서버 JSON 데이터의 키 정렬을 유지하기 위해 JSONKit을 만드는 방법이 있습니까?

답변

1

당신은 사전에 order 속성을 추가 할 수 있습니다. 그리고 그 속성을 사용하여 키를 정렬하십시오. 그런 다음 정렬 된 키를 사용하여 사전을 열거 할 수 있습니다. enumerateKeysAndObjectsUsingBlock:

// Here I suppose you have added another number property `order` for your dictionary's values 
NSArray *sortedKeys = [dic keysSortedByValueUsingComparator:^(id obj1, id obj2){ 
    return [obj1 order] < [obj2 order]; 
}]; 

// for in will give your an ordered travel for your sortedKeys 
for (id key in sortedKeys) { 
    // handle your dic 
    [dic objectForKey:key]; 
} 
1

사전은 주문하지 않지만 배열은, 그래서 당신은 배열로 JSON 데이터 구조를 변경할 수 있습니다, 당신은 정렬 된 결과를 얻을 수 있습니다.

[{'key1':'value1'},{'key2':'value2'},{'key3':'value3'}] 

데이터는 어떻게 생겼습니까?

+0

그것은 좋은 생각하지만 난 내가 통과 할 수 있습니다 내 코드를 많이 변경해야하지만 덕분에 좋은 솔루션. –

관련 문제