2012-09-25 40 views
4

我使用FMDB從我的服務器加載json-data。我得到的響應(JSON),我存儲在一個sqlite數據庫(與下面的響應存儲在數據庫中相同的字符串)。之後,我通過FMDB從數據庫中選擇數據,並嘗試從中建立一個NSDictionary,但無法使其工作。FMDB,sqlite json-string轉換成字典?

的JSON響應我從服務器獲取看起來像下面(簡稱下來這個職位的響應,所以它包含了一些更多...),當我將它輸出通過的NSLog:

{ 
response = { 
    data = { 
     "dbId_1" = { 
      1 = { 
       current = { 
        weekday = Tuesday; 
       }; 
      }; 
     }; 
    }; 
}; 
} 

這是我如何從數據庫中選擇它,我想要的東西,從做一個的NSDictionary:

NSString *jsonString = [results stringForColumn:@"json"]; 

是否有可能重新建立一切放入NSDictionary?

回答

1

添加JSONKit到您的項目,#進口「JSONKit.h」然後去:

NSDictionary *jsonDict = [yourJSONStringFromDB objectFromJSONString]; 

如果您使用自動引用計數,那麼你需要打開你的項目設置>構建階段>編譯的源代碼面板

尋找「JSONKit.m」行並雙擊它,添加「-fno-objc-arc」強制該文件沒有自動引用計數。

JSONKit可以在這裏下載:https://github.com/johnezang/JSONKit

+0

即使使用這個,我的字典也會得到「null」 NSString * jsonString = [結果stringForColumn:@「json」]; NSDictionary * dict = [jsonString objectFromJSONString]; NSLog(@「DICT:%@」,dict); – nickelman

+0

對不起,我的壞,它運作良好:) – nickelman

+0

使用JSONKit的NSData成員更快的閱讀:'[blob objectFromJSONData];' – Ralphleon

0

在我看來,你將需要建立整個字典。

從存儲在SQLite數據庫中的數據中,必須將「key」和「value」對保存到字典中。

我以前使用過類似的編碼結構,並且使用了一個數組。

我希望這會有所幫助。

+0

嗯,好吧。我希望有一個更簡單的方法來做到這一點... – nickelman

+0

我認爲它必須這樣做,祝你好運! –

+0

張先生說得很好,謝謝! – nickelman