【发布时间】:2017-11-20 01:39:02
【问题描述】:
我尝试生成 JSON 对象并将其转换为 JSON 字符串,并且该过程已成功放置。但是当我尝试将 JSON 字符串转换为 JSON 对象时,我的真正问题就出现了。当我尝试时,结果是 nil。
func generateJSONObject() {
let jsonObject = createJSONObject(firstName: firstName[0], middleName: middleName[0], lastName: lastName[0], age: age[0], weight: weight[0])
print("jsonObject : \(jsonObject)")
let jsonString = jsonObject.description // convert It to JSON String
print("jsonString : \(jsonString)")
let jsonObjectFromString = convertToDictionary(text: jsonString)
print("jsonObjectFromString : \(String(describing: jsonObjectFromString))")
}
createJSONObject 函数
// JSON Object creation
func createJSONObject(firstName: String, middleName: String, lastName: String, age: Int, weight: Int) -> [String: Any] {
let jsonObject: [String: Any] = [
"user1": [
"first_name": firstName,
"middle_name": middleName,
"last_name": lastName,
"age": age,
"weight": weight
]
]
return jsonObject
}
convertToDictionary 函数
func convertToDictionary(text: String) -> [String: Any]? {
if let data = text.data(using: .utf8) {
do {
return try JSONSerialization.jsonObject(with: data, options: []) as? [String: Any]
} catch {
print(error.localizedDescription)
}
}
return nil
}
日志
- 当我打印
JSON对象时,我得到了
jsonObject:[“user1”:[“age”:21,“middle_name”:“Lazar”,“last_name”:“V”,“weight”:67,“first_name”:“Alwin”]]
-
当我打印
JSONString 我得到jsonString:[“user1”:[“age”:21,“middle_name”:“Lazar”,“last_name”:“V”,“weight”:67,“first_name”:“Alwin”]]
-
将
JSON字符串转换为JSON对象我得到以下错误无法读取数据,因为它的格式不正确。
jsonObjectFromString : 无
我不知道为什么会这样。我想将JSON String 转换为JSON Object,我想解析JSON。
【问题讨论】:
-
你的json字符串不符合规范,检查json.org
-
那么如何生成json字符串
-
查看答案。只需从数据表示中创建字符串