看起來像你的配置內容被NSLog
輸出,從而導致無效JSON因此假設您的實際配置文件是一個有效的JSON對象,下面的代碼應該得到你所需要的:
//Don't forget to replace "configfile" with your config file name in the project
NSString *configPath = [[NSBundle mainBundle] pathForResource:@"configfile" ofType:nil];
NSData *data = [[NSFileManager defaultManager] contentsAtPath:configPath];
NSDictionary *config = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];
NSArray *ports = [config valueForKeyPath:@"main.inputs.port"];
//ports[0] is 10001
//ports[1] is 10002
在這裏,您可以驗證您的JSON是否有效:http://jsonlint.com。這是你的有效的JSON CONFI看起來應該像:
{
"main": {
"delay": "10000",
"inputs": [
{
"enabled": true,
"ip": "127.0.0.1",
"port": 10001,
"file": "c: \\abc.txt"
},
{
"enabled": true,
"ip": "127.0.0.1",
"port": 10002,
"file": "c: \\myfile.txt"
}
]
}
}
編輯:
我會親自使用一個模型框架,而不是隻是一個JSON解析器救你從一噸體力勞動的是帶有內置-in NSJSONSerialization
class。這裏有幾個還不錯的國家:
1)GitHub上地幔 - https://github.com/MantleFramework/Mantle 我用它在以往任何時候我可以。它寫得非常好,並且考慮了框架,但是涉及到一點學習曲線,這可能對任何新的軟件都是真實的。
2)SBJson - https://github.com/stig/json-framework 可以使用SBJson
如果你只想把工作做好,就已經很受歡迎,尤其是前地幔和其他框架變得可用。
我希望它有幫助。
轉換JSON - > JSONKit或NSJSONSerialization – BLUEPIXY
看起來像NSDictionary'的NSLog輸出(或'description'),它不適合作爲配置文件格式,因爲它不能可靠地解析回來(比較http://對於類似的問題,stackoverflow.com/questions/16783635/nsarray-to-description-and-vice-versa)。 - 如果可能,請選擇其他配置文件格式(例如JSON)。 –