2009-08-14 4 views
7

Objective-C에서 HTTP POST 요청으로 보낼 JSON 페이로드를 만들 수있는 샘플 코드가있는 사람이 있습니까? 모든 샘플 코드는 크게 감상 할 수 http://code.google.com/p/json-framework/Objective-C에서 POST HTTP 요청을위한 JSON 페이로드 생성

: 나는에서 다운로드 json으로 프레임 워크를 사용하고

{__metadata:{\"Uri\":\"/NewLoc/\", 
\"Type\":\"Location.NewLoc\"}, \"LocID\":\"100006\", 
\"latitude\": \"40.123456\", \"longitude\": \"-65.876543\", 
\"VisitDate\": \"\\/Date(1249909200000)\\/\", \"type\": \"S\"} 

:처럼 생성 찾고 있어요 json으로 페이로드의 예를 보인다.

답변

17

이미 json 프레임 워크를 사용하고 있으므로 절반의 작업이 완료되었습니다.

이 프레임 워크는 모든 키 - 값 코딩 호환 객체를 가져 와서 JSON으로 변환 할 수 있습니다. KVC를 지원하는 한 Core Data 객체, NSDictionary 객체 및 임의의 객체가 될 수 있습니다.

또한 json-framework에는 JSONRepresentation 메시지를 사용하여 JSON 문자열을 이러한 개체에서 가져올 수있는 범주가 추가되었습니다.

그래서, 당신이있는 NSDictionary를 사용하고 싶었 가정, 당신은 쓸 수 :

NSMutableDictionary* jsonObject = [NSMutableDictionary dictionary]; 
NSMutableDictionary* metadata = [NSMutableDictionary dictionary]; 
[metadata setObject:@"NewLoc" forKey:@"Uri"]; 
[metadata setObject:@"Location.NewLoc" forKey:@"Type"]; 
[jsonObject setObject:metadata forKey:@"__metadata"]; 
[jsonObject setObject:@"100006" forKey:@"latitude"]; 
// ... complete the other values 
// 
NSString* jsonString = jsonObject.JSONRepresentation; 
// jsonString now contains your example strings. 
+0

Aviad, 즉 최고입니다. 때로는 짧은 코드 샘플 만 있으면 아이디어를 얻을 수 있습니다. 2 시간의 디버깅 가치가 있습니다. 감사! –

+0

@Hamutsi : 고마워, 그저 해답을 얻었 으면 좋겠다.) –

+1

오, 내가 4 월 10 일에 댓글을 달았습니다. :) –