0
我试图序列化一个NSDictionary,并且得到以下错误:数据无法被读取,因为它的格式不正确。序列化NSDictionary错误
这是我尝试序列化的一小部分对象。它的格式相同,我刚刚删除了大部分的项目。
{
action = Websites;
method = "school_webpage";
result = {
CurrentStatus = 1;
Description = OK;
ReturnValue = {
bgcolor = "#FFFFFF";
splash = "";
tree = (
{
children = (
{
iconCls = "icn-add";
id = 462793;
leaf = 1;
showAdd = 0;
text = "Ahrens, Linda";
type = website;
},
{
iconCls = "icn-add";
id = 498858;
leaf = 1;
showAdd = 0;
text = "Altemose, David";
type = website;
},
{
iconCls = "icn-add";
id = 11159347;
leaf = 1;
showAdd = 0;
text = "Alvin, Patrick";
type = website;
}
}
我的代码如下。这个NSDictionary是作为一个AnyObject传递的
func parseJson(_ JsonDict: AnyObject)
{
print(JsonDict)
var data = [newsarticle]()
do{
let jsonData = NSKeyedArchiver.archivedData(withRootObject: JsonDict)
let jsonObject = try JSONSerialization.jsonObject(with: jsonData, options: JSONSerialization.ReadingOptions.mutableContainers)
if let dict = jsonObject as? [String: AnyObject]
{
if let dict2 = (dict as? [String : AnyObject])?["result"]?["ReturnValue"]{
if let dict3 = (dict2 as! [String: AnyObject])["tree"] as? [AnyObject] {
for dict4 in dict3 {
if let dict5 = dict4["children"] as? [AnyObject]{
for dict6 in dict5{
data.append(newsarticle(name: ((dict6 as? [String : AnyObject])?["text"])! as! String,desc: "https://www.oncoursesystems.com/school/webpage/\((dict6 as? [String : AnyObject])?["id"])/689493"))
}
}
}
addData(data)
}
}
}
}
catch let error as NSError {
print("Failed to load: \(error.localizedDescription)")
}
}