iOS中JSON資料解析

2021-07-31 06:38:34 字數 1856 閱讀 5425

使用方法:

nsdictionary

*testdic = [[

nsdictionary

alloc

] initwithobjectsandkeys

:@"0"

,@"result"

,@"1020"

,@"bizcode"

,@"success"

,@"data"

, nil];

nslog

(@"testdic:%@"

,testdic);

nserror

*error;

nsdata

*jsondata; if

([nsjsonserialization

isvalidjsonobject

:testdic])

nsstring

*jsonstr = [[

nsstring

alloc

] initwithdata

:jsondata

encoding

:nsutf8stringencoding];

nslog

(@"jsonstr:%@"

,jsonstr);

nsdictionary

*jsondic = [

nsjsonserialization

jsonobjectwithdata

:jsondata

options:0

error

:&error];

nslog

(@"jsondic:%@"

,jsondic);

nsjsonserialization介面說明

官方為我們提供的解析json資料的類是nsjsonserialization,首先我們先來看下這個類的幾個方法:

+ (bool)isvalidjsonobject:(id)obj;

判斷乙個資料物件是否可以轉化為json資料

+ (nsdata *)datawithjsonobject:(id)obj options:(nsjsonwritingoptions)opt error:(nserror **)error;

將json資料寫為nsdata資料,其中opt引數的列舉如下,這個引數可以設定,也可以不設定,如果設定,則會輸出視覺美觀的json資料,否則輸出緊湊的json資料。

typedef

ns_options(nsuinteger, nsjsonwritingoptions)

+ (id)jsonobjectwithdata:(nsdata *)data options:(nsjsonreadingoptions)opt error:(nserror **)error;

這個方法是解析中資料的核心方法,data是json資料物件,可以設定乙個opt引數,具體用法如下:

typedef

ns_options(nsuinteger, nsjsonreadingoptions)

+ (nsinteger)writejsonobject:(id)obj tostream:(nsoutputstream *)stream options:(nsjsonwritingoptions)opt error:(nserror **)error;

將json資料寫入到輸出流,返回的是寫入流的位元組數

+ (id)jsonobjectwithstream:(nsinputstream *)stream options:(nsjsonreadingoptions)opt error:(nserror**)error;

從輸入流讀取json資料

IOS中JSON資料解析

官方為我們提供的解析json資料的類是 nsjsonserialization,首先我們先來看下這個類的幾個方法 bool isvalidjsonobject id obj 判斷乙個資料物件是否可以轉化為json資料 nsdata datawithjsonobject id obj options ...

IOS轉換和解析JSON資料

在ios開發中常用到使用json資料向伺服器傳送請求和接收資料,本例使用ios5自帶解析類nsjsonserialization方法解析,無需匯入包,ios5支援,但是低版本ios不支援。1.首先建立資料模型 mydata.h import import srtcjsonobject.h inte ...

IOS筆記Json解析

新版sdk自身提供json解析庫,為了向下相容很多程式仍會採用其他類庫來解析,以下就是用jsonkit解析的例子 nslog 列印測試 nsstring jsonstring name samyou name samsam nsdata data jsonstring datausingencodi...