Swift로 Json 구문 분석

루키 안 841

새로운 iOS 언어를 사용하고 있지만 문제가 발생합니다. 다음과 같이 JSON을 구문 분석합니다.

{
   "coord":{
      "lon":-0.13,
      "lat":51.51
   },
   "sys":{
      "message":0.1947,
      "country":"GB",
      "sunrise":1404964557,
      "sunset":1405023356
   },
   "weather":[
      {
         "id":501,
         "main":"Rain",
         "description":"moderate rain",
         "icon":"10d"
      }
   ],
   "base":"cmc stations",
   "main":{
      "temp":291.87,
      "pressure":1018,
      "humidity":87,
      "temp_min":287.15,
      "temp_max":295.45
   },
   "wind":{
      "speed":3.1,
      "deg":350,
      "var_beg":320,
      "var_end":30
   },
   "rain":{
      "3h":0.5
   },
   "clouds":{
      "all":75
   },
   "dt":1404999902,
   "id":2643743,
   "name":"London",
   "cod":200
}

일기 예보 서비스에서 JSON을 얻었지만 지금까지 다음 방법을 만들었습니다.

func getWeatherFinished(json:NSDictionary) {
    if (json != nil) {
        var weather: NSArray = json.objectForKey("weather") as NSArray
        var weatherDict: NSDictionary = weather.objectAtIndex(0) as NSDictionary
        var weatherConditions: NSString = weatherDict.objectForKey("description") as NSString

        var mainDict: NSDictionary = json.objectForKey("main") as NSDictionary
        var temp: NSString = mainDict.objectForKey("temp") as NSString
        var humidity: NSString = mainDict.objectForKey("humidity") as NSString
        var minTemp: NSString = mainDict.objectForKey("temp_min") as NSString
        var maxTemp: NSString = mainDict.objectForKey("temp_max") as NSString

        var windDict: NSDictionary = json.objectForKey("wind") as NSDictionary
        var speed: NSString = windDict.objectForKey("speed") as NSString
        var deg: NSString = windDict.objectForKey("deg") as NSString
    }
}

그러나 앱을 실행하면 충돌이 발생하고 이유를 모르겠습니다. 내 코드에 무엇이 잘못 되었나요? 왜 충돌이 발생합니까?

오류 스크린 샷 : 여기에 이미지 설명 입력

JSON을 받으면 다음 코드를 작성했습니다.

    func connectionDidFinishLoading(connection: NSURLConnection!) {

            var json: AnyObject! = NSJSONSerialization.JSONObjectWithData(receiveData, options: NSJSONReadingOptions(1), error: nil)
        if let jsonDict = json as? NSDictionary {
            getWeatherFinished(json as NSDictionary)
        }

}
코너

JSON이 nil이 아니고 사전이 될 수 있는지 확인하십시오.

func connectionDidFinishLoading(connection: NSURLConnection!) {
    var json: AnyObject! = NSJSONSerialization.JSONObjectWithData(receiveData, options: NSJSONReadingOptions(1), error: nil)
    if let jsonDict = json as? NSDictionary{
        getWeatherFinished(json)
    }

}

이 줄은 'temp'키가있는 개체가 NSString이 아니기 때문에 충돌합니다.

var temp: NSString = mainDict.objectForKey("temp") as NSString

json에서 숫자로 보이므로 대신 다음을 시도해 볼 수 있습니다.

var tempNum: NSNumber = mainDict.objectForKey("temp") as NSNumber
var temp: NSString = tempNum.stringValue()

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

JSON Swift 구문 분석

분류에서Dev

JSON Swift TableView 구문 분석

분류에서Dev

Swift JSON 구문 분석

분류에서Dev

Swift Alamofire JSON 구문 분석

분류에서Dev

regexextract로 json 구문 분석

분류에서Dev

jquery로 JSON 구문 분석

분류에서Dev

jquery로 JSON 구문 분석

분류에서Dev

JQ로 JSON 구문 분석

분류에서Dev

BusyBox 도구로 JSON 구문 분석

분류에서Dev

Json을 문자열로 구문 분석

분류에서Dev

JSON을 NSMutableDictionary 문제로 구문 분석

분류에서Dev

NodeJS로 JSON 구문 분석시 문제

분류에서Dev

NodeJS로 JSON 구문 분석시 문제

분류에서Dev

Alamofire 문제로 JSON 구문 분석

분류에서Dev

Newtonsoft로 Json 문자열 구문 분석

분류에서Dev

Swift에서 Json 구문 분석

분류에서Dev

잘못된 JSON Swift 5 구문 분석

분류에서Dev

Swift의 JSON 구문 분석 오류

분류에서Dev

AFNetworking에서 JSON 구문 분석-Swift

분류에서Dev

Swift의 OpenWeatherMap에서 JSON 구문 분석

분류에서Dev

JSON Swift 첨자 오류 구문 분석

분류에서Dev

Swift 2.0의 JSON 구문 분석 오류

분류에서Dev

Swift 2 구문 분석 및 JSON 읽기

분류에서Dev

Swift로 JSON 문자열 구문 분석 오류

분류에서Dev

Alamofire, Swift 2.0, SwiftyJSON : 응답 본문을 JSON으로 구문 분석

분류에서Dev

JSON SWIFT 3 단일 문자열 Yahoo API로 구문 분석

분류에서Dev

API에서 Swift로 JSON 데이터 구문 분석 문제

분류에서Dev

Python으로 json GitHub API 구문 분석

분류에서Dev

jq 및 필터로 JSON 구문 분석