2015-06-29 2 views
1

Используя NSJSONSerialization.JSONObjectWithData(..), мы можем создать объект JSON. Но можно ли идентифицировать тип объекта, т.е. это объект JSON или нет.Как определить объект JSON с использованием быстрой и xctest-структуры?

Я просто пытался проверить с помощью Swift и XCTestFramework. Я пробовал разные способы, но решения еще не было?

Примечание: После создания объекта JSON я могу получить значения и также проверить значения. XCTest Framework отлично работает, чтобы проверить эти вещи. Но я придерживался, чтобы определить тип объекта.

Кто-нибудь имеет какие-либо идеи, как определить объект JSON программно с помощью Swift и XCTest рамки

Update: Например, для тестирования веб-сайта мы можем сделать следующее:

if let HTTPResponse = response as? NSHTTPURLResponse, 
       responseURL = HTTPResponse.URL, 
       MIMEType = HTTPResponse.MIMEType 
{ 
    XCTAssertEqual(responseURL.absoluteString, URL.absoluteString, "HTTP response URL should be equal to original URL") 
    XCTAssertEqual(HTTPResponse.statusCode, 200, "HTTP response status code should be 200") 
    XCTAssertEqual(MIMEType, "text/html", "HTTP response content type should be text/html") 
      } else { 
       XCTFail("Response was not NSHTTPURLResponse") 
      } 

ли что-то можно, как и выше для JSON?

+1

Если это «объект json», то это будет строка '{...}'. поэтому проверьте первые/последние символы ... –

+0

json ["key"] as? NSArray? – Arbitur

ответ

1

Если вы получаете допустимую строку в параметре NSData, но эта строка не является допустимым объектом JSON, тогда синтаксический анализатор выдаст ошибку. Начиная с documentation:

При возникновении ошибки по возвращении содержит объект NSError, который описывает проблему.

Поэтому проверьте, является ли возвращаемый объект фактическим NSError. Если вы не получите ошибку, я бы смело предположил, что объект действительно является действительным объектом JSON.

Смежные вопросы