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