내 애플리케이션에서 NSMutableData *receivedData
을 반환합니다.구문 분석 JSON : 객체 존재 확인 및 값 읽기
NSJSONSerialization을 사용하여 가장 쉬운 가정하에이를 구문 분석하도록 선택했습니다. 나는 그것을하는 방법 주위에 내 머리를 얻으려고 극단적 인 문제가 있습니다. Java 배경에서 Objective-C를 처음 접했습니다.
자바에서는 gson을 사용하여 쉽게 사용할 수있는 배열로 JSON을 구문 분석했습니다. 나는 이것에 정말로 고투하고있다. JSON을 구문 분석
내 현재 코드는 다음과 같습니다
NSError *e = nil;
NSArray *jsonArray = [NSJSONSerialization JSONObjectWithData: receivedData options: NSJSONReadingMutableContainers error: &e];
if (!jsonArray) {
NSLog(@"Error parsing JSON: %@", e);
} else {
for(NSDictionary *item in jsonArray) {
NSLog(@"Item: %@", item);
}
}
인터넷에서 누군가에 의해 제공. 그러면 NSLog에 두 개의 항목이 인쇄됩니다. result
및 header
. 여기에 JSON이 모습입니다 :
{
"header":{
"session":"sessionid",
"serviceVersion":"1",
"prefetchEnabled":true
},
"result":"50ce82401e826"
}
:
- 확인 : 나는 코드가 작동 할 방법
{ "header":{ "session":"sessionid", "serviceVersion":"1", "prefetchEnabled":true }, "fault":{ "code":0, "message":"someErrorCode" } }
"fault"객체가있는 경우
- 있을 경우 fault.code 및 fault.message를 NSLog에 인쇄하십시오.
- If 내 JSON 대신 오류
- 인쇄 NSLog
에 결과 값의 결과를 포함 것을 알고하지만 내 인생은 접근하는 방법을 알아낼 수 없습니다를 들어,이 없다. 누군가 포인터를 좀 주시겠습니까?
'jsonArray'는 NSArray가 아니라 'NSDictionary'입니다. 그건 그렇고, 이것은 매우 간단합니다 :'fault' 키에 해당하는 객체가'nil '인지 확인하십시오. –
예, 문서를 읽는 것으로부터 알 수있는 한, 모든 객체 (예 :'header'와'fault')는'NSDictionary'입니까? 그렇다면'result'는'NSString'일까요? –
@ jordanmoore 네, 그렇습니다. –