2016-12-22 9 views
0

Я пытаюсь отправить объект json на сервер. Сервер ожидает объект быть в следующем формате:неправильный формат json в swift

{ 
"Lat": 10.33688590000001, 
"Name": "nameOfSomething", 
"Lng": 58.43135800000005 
} 

, но объект, который я получаю после определения объекта заключается в следующем:

[ 
"Lat": 10.33688590000001, 
"Name": nameOfSomething, //this is missing "" 
"Lng": 58.43135800000005 
] 

код, который я использую это:

let jsonObject: [String: AnyObject] = [ 

    "Lat": lat, 
    "Name": nameOfSender.text!, 
    "Lng": lng 
    ] 


let jsonData = try! NSJSONSerialization.dataWithJSONObject(jsonObject, options: .PrettyPrinted) 

Любые идеи, как это решить?

+0

Попробуйте без параметров '[]' вместо '.PrettyPrinted' для отправки JSON на сервер. – Moritz

+0

@ Эрик Айя - Не работал. Я думаю, что ошибка лежит где-то вдоль «let jsonObject: [String: AnyObject] = [" строка, где я определяю объект – markan3

+0

Действительно ли вы отправляете его на сервер или вы останавливаетесь раньше, потому что вы думаете, что есть проблема? Я ничего не вижу в вашем коде, что может вызвать проблему с сервером (кроме довольно напечатанного, но вы говорите, что это не причина). Не полагайтесь на то, что видите и отправляете данные JSON, не очень печатные - что происходит? Что такое сообщение об ошибке? – Moritz

ответ

0
Please Look on this. it will give you correct answer. 
    /// Use this method to get JSON string from Dictionary. 
    /// 
    /// 
    /// - returns: `String` for Dictionary 
    func getJSONStringForDictionary(dict:[String:AnyObject]) -> String { 
    do { 
     let jsonData = try NSJSONSerialization.dataWithJSONObject(dict, options: []) 
     if let jsonString = NSString(data: jsonData, encoding: NSUTF8StringEncoding) as? String { 
     return jsonString 
     } 
     // here "jsonData" is the dictionary encoded in JSON data 
    } catch let error as NSError { 
     print(error) 
    } 
    return "" 
    } 


/* calling */ 


let json = self.getJSONStringForDictionary(jsonObject) 


    print(json) 
//{ 
    "Lat" : 10.33688590000001, 
    "Name" : "nameOfSomething", 
    "Lng" : 58.43135800000005 
}