如何使用库NSJSONSerialization
读取日文json文件?
我试过(使用Swift2的代码):
let filePath = NSBundle.mainBundle().pathForResource("myfile",ofType:"json")
let optData = NSData(contentsOfFile:filePath!)
do {
let abc = try NSJSONSerialization.JSONObjectWithData(optData! as NSData, options: .MutableContainers) as! NSDictionary
print("data read: \(abc)")
} catch {
print("error: \(error)")
}
但是abc中的数据是不可读的。所以我的问题是:如何更改NSData对象的编码。
顺便说一句,如果我将NSData
对象转换为NSString
,则日语json是完美编码的:
let stringData = NSString(data: optData!, encoding: NSUTF8StringEncoding)
谢谢
答案 0 :(得分:2)
JSON文件始终采用某种Unicode编码。 NSJSONSerialization
会自动处理所有有效的可能性(包括UTF-8)以及stringData
看起来合理的事实表明编码不是问题。
查看您的代码,出现问题的可能性是:
NSDictionary
将失败。使用if let .... as? NSDictionary
而不是强制转换,如果失败,请尝试将其强制转换为NSArray
。