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)")
}
}