2016-08-08 4 views
0

У меня есть этот файл в формате JSON:Получить данные из JSON файла с прошивкой и быстрая

 var Point : 

     [ 
     { 
     "id": 1, 
     "name": "A", 
     "LastUpdate": 1468011600, 
     "position": [36.8656974, 10.1687314]}, 

     { 
     "id": 1, 
     "name": "A", 
     "LastUpdate": 1468397003, 
     "position": [36.9009882, 10.3009531] 
     }, 
     { 
     "id": 1, 
     "name": "A", 
     "LastUpdate": 1467590490, 
     "position": [37.1691357, 10.0349865] 
     } 
      ] 

и мне нужно прочитать эти данные в моей ViewController, я пытался работать с SwiftyJSON, но мне не удалось. PS: Код с swift и не объектив-C Любые решения?

+0

Вы можете использовать 'NSJSONSerialization' для преобразования String JSON в массив. – Larme

+0

Можете ли вы предоставить код здесь? –

+0

Вы когда-нибудь сталкивались с NSJSONSerialization – Blisskarthik

ответ

0

Вы можете использовать this great library. Эта библиотека обеспечивает синтаксический анализ от JSON до словаря очень простой (всего 1-2 строки кода).

P.S. Также я рекомендовал использовать this library для отображения словаря для объекта

UPDATE Чтобы установить swiftyJSON в podfile

platform :ios, '8.0' 
use_frameworks! 

pod 'SwiftyJSON' 

Тогда sudo pod install

+0

Я не могу установить swiftyJSON :( -bash: pod: команда не найдена –

+0

Вы можете скачать источники из github или [install pods] (https://cocoapods.org) – RrrangeTop

+0

Я установил COCOAPODS, а затем создал podfile, затем? –

0

Попробуйте преобразовать строку в NSDictionary

func convertStringToDictionary(text: String) -> [String:AnyObject]? { 
    if let data = text.dataUsingEncoding(NSUTF8StringEncoding) { 
    do { 
     return try NSJSONSerialization.JSONObjectWithData(data, options: []) as? [String:AnyObject] 
    } catch let error as NSError { 
     print(error) 
    } 
    } 
    return nil 
} 

Чтобы удалить синтаксические ошибки из вашего кода, представленного заменить фигурные скобки в квадратных скобках.

var Point = [ 
    [ 
    "id": 1, 
    "name": "A", 
    "LastUpdate": 1468011600, 
    "position": [36.8656974, 10.1687314]], 

    [ 
    "id": 1, 
    "name": "A", 
    "LastUpdate": 1468397003, 
    "position": [36.9009882, 10.3009531] 
    ], 
    [ 
    "id": 1, 
    "name": "A", 
    "LastUpdate": 1467590490, 
    "position": [37.1691357, 10.0349865] 
    ] 
    ] 
+0

Deserializing конкретного JSON в вопросе вернет 'nil'. – vadian

+0

Да, потому что это не действительный объект json. Это корень отсутствует. попробуйте обернуть его вот так. '{" root ":" ваша существующая строка "}'. Чтобы быть более конкретным, '{" root ":" [{"id": 1, "name": "A", ...}, ...] "}'. – LIH

+1

Помимо путаницы, что JSON не соответствует объявлению переменной, корневой объект JSON не должен быть словарем. – vadian

0

Почему бы не просто использовать Alamofire. Это простая структура, и вы можете установить ее с помощью Cocoa pods. Вот пример использования Alamofire:

Alamofire.request(.GET, "https://httpbin.org/get", parameters: ["foo": "bar"]) 
     .responseJSON { response in 
      print(response.request) // original URL request 
      print(response.response) // URL response 
      print(response.data)  // server data 
      print(response.result) // result of response serialization 

      if let JSON = response.result.value { 
       print("JSON: \(JSON)") 
      } 
     } 
Смежные вопросы