IOS JSON解析之JSONKit使用

2021-07-06 04:22:50 字數 2243 閱讀 3793

將jsonkit.h和jsonkit.m拖到專案中

配置:

//匯入jsonkit時候需要特別的配置 (-fno-objc-arc)

//(1)修改jsonkit.m檔案第680行,修改為object_setclass(array, _jkarrayclass);

//(2)修改jsonkit.m檔案第931行,修改為object_setclass(dictionary, _jkdictionaryclass);

下面**:

//string to dictionary

nsstring *resultstr = @"";

nsdata* jsondata = [resultstr datausingencoding:nsutf8stringencoding];

nsdictionary *resultdict = [jsondata objectfromjsondata];

nslog(@"name is :%@",[resultdict objectforkey:@"name"]);

nsarray *list = [resultdict objectforkey:@"list"];

for (nsstring *str in list)

//dicttionary to string

nsstring *jsonstr = [resultdict jsonstring];

nslog(@"temp is :%@",jsonstr);

為了方便大家看懂在上面的**中做了相應更改。

//建立或者讀取json資料

nsstring *resultstr = @"";

//編碼json資料

nsdata* jsondata = [resultstr datausingencoding:nsutf8stringencoding];

//開始解析json資料

nsdictionary *resultdict = [jsondata objectfromjsondata];

//讀取解析後的json資料放熬陣列裡面

nsarray *arr = [resultdict objectforkey:@"name"];

nsarray *list = [resultdict objectforkey:@"list"];

nslog(@"arr is :%@\n, list is :%@", arr,list);

//將解析後json資料再轉換為json進行輸出,

nsstring *jsonstr = [resultdict jsonstring];

nslog(@"temp is :%@",jsonstr);

到這裡我們就為json解析中的jsonkit做了簡單的介紹,如果以後你還遇到需要解析json為妾是要用jsonkit的時候,基本上只要把上面的**弄懂了,再在你專案裡面做小部分的相應更改就能很好的操作了!

下面是解析json的乙個很好的例項

- (ibaction)btnpressjsonkit:(id)sender ";

nslog(@"json1:%@",json1);

nsdictionary *data1 = [json1 objectfromjsonstring];

nslog(@"json1.a:%@",[data1 objectforkey:@"a"]);

nslog(@"json1.b:%@",[data1 objectforkey:@"b"]);

[json1 release];

//如果json有巢狀,即value裡有array、object,如果再使用objectfromjsonstring,程式可能會報錯(測試結果表明:使用由網路或得到的php/json_encode生成的json時會報錯,但使用nsstring定義的json字串時,解析成功),最好使用objectfromjsonstringwithparseoptions:

nsstring *json2 = @"}";

nslog(@"json2:%@", json2);

nsdictionary *data2 = [json2 objectfromjsonstringwithparseoptions:jkparseoptionlooseunicode];

nslog(@"json2.c:%@", [data2 objectforkey:@"c"]);

nslog(@"json2.d:%@", [data2 objectforkey:@"d"]);

[json2 release];

IOS JSON資料解析 一

對於json資料,蘋果提供了nsjsonserializaiton類來解析。比如我們有乙個json檔案,那麼如下 可以獲取到json資料 nsbundle b nsbundle mainbundle nsstring path b pathforresource json oftype json n...

ios json 解析丟失精度

當json字典中含有一位及以上小數字時,在使用 nsjsonserialization方法先轉為nsdata再解析為字串時有時會出現資料誤差,如下 nsstring jsonstr nsdata jsondata jsonstr datausingencoding nsutf8stringencod...

iOS之資料解析之XML解析

xml解析常見的兩種方式 dom解析和sax解析 dom解析 解析 如下 void xmldommethed nslog self sourcearray 寫入 如下 通過dom解析方式為xml增加節點 sax只可以讀取,不可以新增 void domaddnote sax解析 遵循協議 inte c...