在維護的一個項目中,native和h5進行交互,通過webview的shouldStartLoadWithRequest攔截url,進行交互。通過截取字符串的方式得到字符串,并要把它轉(zhuǎn)成json進行之后的請求。
正常字符串轉(zhuǎn)json的幾個方法:
如:攔截到的url為?http://abcd/LocalActions/listeningBack/{"args":["0"],"index":31}
1.原生的NSJSONSerialization用法詳解
params = {"args":["0"],"index":31};
NSData *data = [parameStr dataUsingEncoding:NSUTF8StringEncoding];
tempDictQueryDiamond = [NSJSONSerializationJSONObjectWithData:dataoptions:0error:&error];

2.JSONKit,需去github下載,下載地址https://github.com/johnezang/JSONKit
由于項目已經(jīng)很久沒有更新,仍然使用了MRC,因此在使用時需要做幾處修改.
①把JSONKit設(shè)置為不支持arc的模式,在Build Phases ->Compile Sources 選擇文件雙擊,在對話框中添加“-fno-objc-arc”參數(shù)(不含引號)。

②編譯可能會出現(xiàn)下面的錯誤:
報錯信息:error: assignment to Objective-C‘s isa is deprecated in favor of object_setClass()
解決辦法:(1)修改JSONKit.m文件第680行,修改為object_setClass(array, _JKArrayClass);
? ? ? ? ? ? ? ? ? (2)修改JSONKit.m文件第931行,修改為object_setClass(dictionary, _JKDictionaryClass);
使用方法:? ? ?[parameStr objectFromJSONString];