2014-03-06 114 views
1

我試圖將Xcode中的簡單xml文檔轉換爲JSON。問題是不斷返回零。在ios中將XML轉換爲JSON

這是我的代碼:

NSURL *url = [[NSURL alloc] initFileURLWithPath:@"http://www.w3schools.com/xml/note.xml"]; 
NSData *xmlData = [[NSData alloc] initWithContentsOfURL:url]; 

NSError *parseError = nil; 
NSDictionary *xmlDictionary = [XMLReader dictionaryForXMLData:xmlData error:&parseError]; 


NSError *error; 
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:xmlDictionary 
                options:NSJSONWritingPrettyPrinted 
                error:&error]; 
NSLog(@"%@", jsonData); 

錯誤消息:

[NSJSONSerialization dataWithJSONObject:options:error:]: value parameter is nil' 
+3

顯然'xmlDictionary'是'nil'。記錄'parseError'來查看原因。 – rmaddy

+0

仍然返回[NSJSONSerialization dataWithJSONObject:options:error:]:值參數爲零' – user3258468

+1

您誤解了。 'xmlDictionary'是'nil'。這意味着你對'dictionaryForXMLData:error:'的調用正在返回'nil'。當你將'parseError'從調用記錄到'dictionaryForXMLData:error:'時,你會得到什麼? – rmaddy

回答

0

正如rmaddy說,嘗試打印parseError。如果parseError爲Nil,則嘗試打印xmlDictionary,並檢查字典是否正確創建。

如果xmlDictionary也是Nil,那麼檢查xmlData,這應該很好,在這種情況下,如果dictionaryForXMLData方法檢查任何條件,則必須驗證它。

希望我幫了忙。

+0

xmlDictionary返回(null)。 xmlData返回null。我想這是用xmlData的東西? – user3258468

+1

如果xmlData爲零,則嘗試在下面的方法中初始化NSData [NSData dataWithContentsOfURL:[NSURL URLWithString:@「http://www.w3schools.com/xml/note.xml」]] – anirudh

+0

仍然返回(null)這很奇怪.. – user3258468