在維護的一個項目中,native和h5進行交互肥矢,通過webview的shouldStartLoadWithRequest攔截url端衰,進行交互。通過截取字符串的方式得到字符串,并要把它轉成json進行之后的請求旅东。
正常字符串轉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
由于項目已經很久沒有更新腾节,仍然使用了MRC,因此在使用時需要做幾處修改.
①把JSONKit設置為不支持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];