2017-12-19 23 views
1

나는 코드를 아래와 같이 JSON 직렬화에서 일하고 있어요 :swift3에서 JSON 응답을 사전 형식으로 가져올 수 있습니까?

let jsonData: Data? = try? JSONSerialization.data(withJSONObject: abc, options: .prettyPrinted) 
    let parsedDict = String(data: jsonData!, encoding: String.Encoding.utf8) 
    print(" parse Dict Value \(parsedDict!)") 

ABC 데이터는 다음과 같습니다

{ 
    "ActedTime" = "2017-09-19 12:04:12", 
    "EventDate" = "2017-10-06 07:03:29" 
} 

직렬화의 완료 후, 응답 값은 다음과 같습니다

"{\n \"ActedTime\" : \"2017-09-19 12:04:12\",\n \"EventDate\" : \"2017-10-06 07:03:29\”}” 

I 인쇄 다음과 같은 parsedDict :

{ 
    "ActedTime" : "2017-09-19 12:04:12", 
    "EventDate" : "2017-10-06 07:03:29" 
} 

저장된 데이터는 문자열 형식처럼 보이지만 데이터는 사전과 같이 인쇄됩니다.

사전 형식과 같은 다른 API에 매개 변수를 전송하기위한 사전 형식을 어떻게 얻을 수 있습니까?

제발 도와주세요, 감사합니다.

+0

[JSON 문자열을 사전으로 변환하는 방법] 가능한 복제본 (https://stackoverflow.com/questions/30480672/how-to-convert-a-json-string-to-a-dictionary) – Hexfire

+0

이미 시도했지만 [String : String] 형식을 얻었습니다. 그러나 나는 단지 아래의 형식만을 원한다. { "ActedTime": "2017-09-19 12:04:12", "EventDate": "2017-10-06 07:03:29" } –

+0

괜찮습니다. 'DateFormatter'을 사용하여 날짜 문자열을 실제 날짜로 변환하고 형식을 'yyyy-MM-dd hh : mm : ss'로 설정하면됩니다. – Hexfire

답변

0

Omit .prettyPrinted, 서버는 상관하지 않습니다.

let jsonData = try? JSONSerialization.data(withJSONObject: abc) 

개체가 사전이되어야한다면, 왜 그것을 직렬화해야합니까?

그러나 parsedDict 대신 httpBody으로 전달되는 데이터는 jsonData입니다.

+0

작동하지만 저장 한 데이터는 문자열 형식과 비슷합니다. 내 요구 사항은 사전 형식입니다. 방법? –

+0

내 API 중 하나가 JSON 형식 만 허용하는 문자열 형식을 허용하지 않습니다. 이 request.httpBody = 시도 같은 값을 전달 : (parsedDict! 텍스트) –

+0

JSON은 ** – vadian