JSON與OC互相轉換

2021-07-22 03:46:57 字數 1885 閱讀 7539

(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 ...