2015-02-03 3 views
0

Я использую AFNetworking Library с Swift. Когда я получаю одиночные данные json как [{a: "xxx", b: "yyy"}], он преуспевает. Но когда я извлекаю несколько данных json как [{a: "xxx", b: "yyy"}, {a: "mmm", b: "nnn"}], он не удался.Как получить данные JSON с AFNetworking?

let manager:AFHTTPRequestOperationManager = AFHTTPRequestOperationManager() 
    let serializer:AFJSONRequestSerializer = AFJSONRequestSerializer() 
    manager.requestSerializer = serializer 
    manager.GET("http://www.test.com/member.json", parameters: nil, 
     success: {(operation: AFHTTPRequestOperation!, responsObject: AnyObject!) in 
      let responsDict = responsObject as Dictionary<String, AnyObject> 
     }) 

Я думаю, что я должен изменить тип словаря responsObject на что-то еще. Но я понятия не имею.

Не могли бы вы дать мне совет, пожалуйста.

+0

Ваш второй «мульти данных», как представляется, массив на первом уровне вместо словаря. – Larme

+0

[{a: "xxx", b: "yyy"}, {a: "mmm", b: "nnn"}] недействителен JSON. Можете ли вы опубликовать фактический JSON, который вы возвращаете, пожалуйста, –

+0

[{"a": "xxx", "b": "yyy"}, {"a": "mmm", "b": "nnn"}] – tajihiro

ответ

1

Пожалуйста, проверьте следующий пример, чтобы увидеть, что вам не хватает:

manager.GET("https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quote%20where%20symbol%20in%20(%22AAPL%22)&format=json&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=", 
    parameters: nil, 
    success: { 
     operation, responseObject in 

     if let quote = responseObject?.objectForKey("query")?.objectForKey("results")?.objectForKey("quote") as? NSDictionary { 

      let symbol = quote.objectForKey("Symbol") as? String 
      let lastTradePriceOnly = quote.objectForKey("LastTradePriceOnly") as? String 

      println("results: \(symbol) @ \(lastTradePriceOnly)") 
     } else { 
      println("no quote") 
     } 
    }, 
    failure: { 
     operation, error in 

     println("Error: " + error.localizedDescription) 
    }) 
+0

Что делать, если я хочу получить " время "на https://query.yahooapis.com? В моем случае я изменил свой формат JSON таким образом. http://score-sheet.herokuapp.com/api/members/all.json. Я хотел бы получить список участников. – tajihiro

+0

Спасибо вам всем !!! Я понял. Мой формат JSON был неправильным. Я должен изменить формат следующим образом. {"query": {"members": [{"a": "xxx", "b": "yyy"}, {"a": "mmm", "b": "nnn"}]}} – tajihiro

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