2014-04-30 1 views
0

POST를 RESTful 웹 API로 사용하고 httpBody의 형식에 문제가 있습니다.NSURLSessionDataTask를 사용하여 iOS에서 JSON 내 Array의 올바른 형식을 지정하십시오.

내가 그것을상의 NSArray 실행 NSJSONSerialization을했다 "있는 그대로"이것을 함께 넣어하기 위해
{ 
    "UserId" : "ThisIsMe", 
    "Locations" : ["1"], 
    "TypeOfValue" : "3", 
    "SomeTypeID" : 22, 
    "Title" : "asdfadsf", 
    "Description" : "Description" 
} 

다음에 그것을 추가 :

{ 
    "UserId" : "ThisIsMe", 
    "Locations" : "[\n \"1\"\n]", 
    "TypeOfValue" : "3", 
    "SomeTypeID" : 22, 
    "Title" : "asdfadsf", 
    "Description" : "Description" 
} 

하지만 내가 필요로하는 것은 이것이다 : NSJSONSerialization이 만드는 것입니다 NSDictionary을 입력 한 다음 NSJSONSerialization으로 전화하십시오. 그래서 이중 직렬화에 분명히 문제가 있습니다. 그러나 배열을 NSDictionary으로 전달하면 실패합니다 ... 도와주세요.

+0

사전에 배열이있는 경우 어떻게 실패합니까? 반환 된 오류/JSON 무엇입니까? – Wain

+0

올바른 형식이 아닙니다. 배열 태그가 큰 따옴표 안에 문자열로 감싸 져 있기 때문에 "["1 ","4 "]"인 문자열이 아닌 배열을 얻는 것이 기대됩니다. 또한 그것은 캐리지 리턴을 만들고 있지만 그것은 미리 인쇄를 위해 설정된 옵션과 관련이 있습니다. – David

+0

그것은 현재 코드에서 무엇이 잘못 되었는가에 대한 설명입니다. 이전 솔루션에서와 달리 작동하지 않습니다 (하지만 올바른 접근이라고 생각합니다). – Wain

답변

2

당신은해야 그 키 값 인스턴스 (NSString를 포함) NSString, NSNumber 또는 NSArray 모든 문자열과는 NSDictionary. 그런 다음 NSJSONSerialisation을 사용하여 해당 사전 표현을 JSON 데이터 표현으로 변환하면 원하는 것을 얻을 수 있습니다.