iBu*_*Bug 10 json swift swifty-json
我知道有一个与同名的一个问题在这里.但在那个问题上,他正在尝试将字典转换为JSON.但我有一个像这样简单的刺痛:"花园"
我必须将其作为JSON发送.我已经尝试过SwiftyJSON,但我仍然无法将其转换为JSON.
这是我的代码:
func jsonStringFromString(str:NSString)->NSString{
let strData = str.dataUsingEncoding(NSUTF8StringEncoding)
let json = JSON(data: strData!)
let jsonString = json.string
return jsonString!
}
Run Code Online (Sandbox Code Playgroud)
我的代码在最后一行崩溃了:
fatal error: unexpectedly found nil while unwrapping an Optional value
Run Code Online (Sandbox Code Playgroud)
难道我做错了什么?
aya*_*aio 22
JSON必须是数组或字典,它不能只是一个字符串.
我建议你创建一个包含String的数组:
let array = ["garden"]
Run Code Online (Sandbox Code Playgroud)
然后从这个数组创建一个JSON对象:
if let json = try? NSJSONSerialization.dataWithJSONObject(array, options: []) {
// here `json` is your JSON data
}
Run Code Online (Sandbox Code Playgroud)
如果您需要将此JSON作为String而不是数据,则可以使用此:
if let json = try? NSJSONSerialization.dataWithJSONObject(array, options: []) {
// here `json` is your JSON data, an array containing the String
// if you need a JSON string instead of data, then do this:
if let content = String(data: json, encoding: NSUTF8StringEncoding) {
// here `content` is the JSON data decoded as a String
print(content)
}
}
Run Code Online (Sandbox Code Playgroud)
打印:
["花园"]
如果您更喜欢使用字典而不是数组,请遵循相同的想法:创建字典然后转换它.
let dict = ["location": "garden"]
if let json = try? NSJSONSerialization.dataWithJSONObject(dict, options: []) {
if let content = String(data: json, encoding: NSUTF8StringEncoding) {
// here `content` is the JSON dictionary containing the String
print(content)
}
}
Run Code Online (Sandbox Code Playgroud)
打印:
{ "位置": "花园"}
| 归档时间: |
|
| 查看次数: |
26108 次 |
| 最近记录: |