2012-01-05 2 views
2

iOS5에서 JSON 구문 분석을위한 고유 솔루션이 있다는 것을 알게되었으며 대부분의 사람들이 사용하는 외부 JSON 프레임 워크 대신 JSON 구문 분석을 사용할 수 있다는 점을 알게되었습니다. http://www.raywenderlich.com/5492/working-with-json-in-ios-5iOS5의 복잡한 JSON

지금 내 질문 : 지금까지 쉽게 포맷 JSON을 처리 할 아주 쉽게 보이지만 문제는 내가 액세스 할 수있는 방법을 이해하는 데

기본적으로 iOS에서 JSON을 사용하는 방법에 대한 기사는 여기에있다 더 복잡한 데이터 구조.

예를 들어, 3 개의 사전이 포함 된 JSON 개체가 있고 각 개체에 다른 배열과 사전이 항목으로 들어있는 경우이 데이터에 액세스하는 방법이 명확하지 않습니다.

자바에서는 도트 표기법을 사용하여 obj1.dictionary1 [3] .varname과 같은 하위 데이터에 액세스 할 수 있습니다.이 객체는 첫 번째 객체에 액세스하고 dictionary1의 위치 3으로 이동하여 varname의 키 값을 가져옵니다. ... iOS JSON 기능 만 사용하여 동일한 결과를 얻으려면 어떻게해야합니까?

슬프게도 iOS 용 네이티브 JSON 프레임 워크는 Java에서 JSON 객체의 사용 논리를 따르지 않는 것 같습니다. 그래서 내 목표를 달성하는 방법에 대해서는 거의 알지 못합니다.

기본 JSON을 삭제하고 온라인으로 사용할 수있는 JSON 프레임 워크를 사용해야합니까?

미리 의견을 보내 주셔서 감사합니다.

+0

"Java"또는 "JavaScript"에 액세스하기위한 설명서를 살펴보십시오. – fge

+0

자바, 게시물에 언급했다. – user1006198

+0

Err no. 이렇게하면 Java로 JSON에 액세스 할 수 없습니다. Jackson과 같은 JDK에 대한 외부 라이브러리로 수행됩니다. – fge

답변

1

아니요 "점 표기"를 사용할 수 없습니다. NSArrayobjectAtIndexNSDictionaryobjectForKey과 함께 사용해야합니다.

IOS JSON get all values from a "JSON Dict".

대부분의 경우 제 3 자 라이브러리는 유사한 API를 가지고 있으므로 중첩 된 사전과 배열을 반환합니다. 객체와 같은 "도트 표기법"을 제공하는 라이브러리를 보지 못했습니다.

+0

고마워요. Krizz; JSON에서 데이터를 가져 오기 위해 어려운 수동 작업을 저장하고 싶었지만 결국에는 JSON 형식에서 사전 및 배열 형식으로 변환한다는 것입니다. 따라서 생성하는 것처럼 네이티브 트래버스 할 수 있습니다. 그들을 채우는 것. 누군가가 당신이 키를 호출하고 값을 얻는 API를 만들면 (아마도 점 표기법을 사용하지 않고 계층 구조를 지정하는 것) 좋을 것입니다. 복잡한 JSON 피드를 다룰 때 많은 시간을 절약 할 수 있습니다. – user1006198

+0

나는 이것이 [KVC] (http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/KeyValueCoding/Articles/KeyValueCoding.html)에서 가능하다고 믿는다. – Krizz

+0

@Krizzy KVC에 대한 제 연구 결과에 따르면 KVC는 특정 배열 인덱스에 액세스 할 수있는 방법이 없기 때문에 반드시 가능하지는 않습니다. 따라서 데이터 구조에 배열이 포함 된 경우 KVC가 작동하지 않습니다. –

1

이것은 JSON이 아닌 objective-c 데이터 구조를 트래버스 할 때 구문에 관한 질문입니다. NSDictionaryNSArray

+0

설명해 주셔서 감사합니다.iOS의 JSON을 구문 분석하는 객체가 암시 적으로 Java의 객체처럼 동작하므로 obj-c에서 도트 구문과 동일한 기능을 사용할 수없는 이유를 알지 못했습니다. 그래서 객체가하는 모든 작업은 JSON에서 일반 NSDictionary 및 NSArray 로의 변환입니다. – user1006198

+0

예. 원시 JSON을 기본 objective-c 데이터 구조, 주목할만한 NSArrays, NSDictionaries, NSStrings 및 NSNumbers로 변환합니다. – coneybeare