(1)json資料->oc物件
//把json資料轉換為oc物件
-(void)jsontooc
];}
(2)oc物件->json物件
//1.要轉換成json資料的oc物件*這裡是乙個字典
nsdictionary *dictm = @;
>json
/* 注意:可以通過+ (bool)isvalidjsonobject:(id)obj;方法判斷當前oc物件能否轉換為json資料
具體限制:
1.obj 是nsarray 或 nsdictionay 以及他們派生出來的子類
2.obj 包含的所有物件是nsstring,nsnumber,nsarray,nsdictionary 或nsnull
3.字典中所有的key必須是nsstring型別的
4.nsnumber的物件不能是nan或無窮大
*//* 第乙個引數:要轉換成json資料的oc物件,這裡為乙個字典
第二個引數:nsjsonwritingprettyprinted對轉換之後的json物件進行排版,無意義
*/nsdata *data = [nsjsonserialization datawithjsonobject:dict options:kniloptions error:nil];// oc物件 -> json資料 [資料傳輸只能以進製流方式傳輸,所以傳輸給我們的是進製流,但是本質是json資料
nslog(@"%@", data);
nslog(@"%@", [[nsstring alloc] initwithdata:data encoding:nsutf8stringencoding]);
//3.列印檢視data是否有值
/* 第乙個引數:要轉換為string的二進位制資料
第二個引數:編碼方式,通常採用nsutf8stringencoding
*/nslog(@"%@", data);
nslog(@"%@", [[nsstring alloc] initwithdata:data encoding:nsutf8stringencoding]);
(3)oc物件和json資料格式之間的一一對應關係
//oc物件和json資料之間的一一對應關係
-(void)ocwithjson
"; //把json資料->oc物件,以便檢視他們之間的一一對應關係
//注意點:如何被解析的json資料如果既不是字典也不是陣列(比如是nsstring), 那麼就必須使用這nsjsonreadingallowfragments
id obj = [nsjsonserialization jsonobjectwithdata:[test datausingencoding:nsutf8stringencoding] options:nsjsonreadingallowfragments error:nil];
nslog(@"%@", [obj class]);
/* json資料格式和oc物件的一一對應關係
{} -> 字典
-> 陣列
"" -> 字串
10/10.1 -> nsnumber
true/false -> nsnumber
null -> nsnull
*/}}
(4)如何檢視複雜的json資料
方法一:
方法二:
把解析後的資料寫plist檔案,通過plist檔案可以直觀的檢視json的層次結構。
[dictm writetofile:@"/users/hwm/desktop/videos.plist" atomically:yes];
json與map互相轉換
map轉json 1 利用fastjson mapparams new hashmap params.put invateid 1 object o jsonobject.tojson params system.out.println o.tostring 2.利用gson gson gson n...
json與map互相轉換
json字串自動轉換 public class jsontomaptest01 第一種方式 map maps map json.parse str system.out.println 這個是用json類來解析json字串 for object map maps.entryset 第二種方式 map...
json資料與String的互相轉換
json資料本質上也是字串,所以他們之間的轉換也是比較容易的,記住方法和需要注意的事項就行了。字串轉json 在構造json的物件時候把string物件傳進去即可。看例子 string data trycatch jsonexception e catch nullpointerexception ...