iphone ios json解析流程,教程

2021-06-07 00:21:48 字數 3900 閱讀 5734

json是現時流行的資料格式,與xml相比,json更為輕巧。在傳輸相同資料時,json在大部份情況也會較xml的檔案小,在手機網路上傳輸json亦會比xml快。

iphone cocoa touch framework中並沒有library去操作json資料格式。幸好有一些人為objective c製作了能夠操作json資料格式的library

而我使用的是這一款: json-framework

下載完成後將整個json資料夾複製到project內,然後那乙個class要使用到json library只要引入json.h就可以了。

[html]view plain

copy

print?

,  "glosssee": "markup"  

}  }  

}  }  

}  

以上的資料我會放到乙個data.json的檔案內。

現在讀取這個檔案:

[html]view plain

copy

print?

nsstring *filepath

= [[nsbundle mainbundle] pathforresource:@"data" oftype:@"json"];  

nsstring *jsonstr

= [nsstring stringwithcontentsoffile:filepath encoding:nsutf8stringencoding error:nil];  

sbjsonparser *parser

= [[sbjsonparser alloc] init];  

nsdictionary *json

= [parser objectwithstring:jsonstr error:nil];  

nsdictionary *glossary

= [json objectforkey:@"glossary"];  

nsstring *glossarytitle

= [glossary objectforkey:@"title"];  

nsdictionary *glossdiv

= [glossary objectforkey:@"glossdiv"];  

nsstring *glossdivtitle

= [glossdiv objectforkey:@"title"];  

nsarray *glossseealso

= [[[[glossdiv objectforkey:@"glosslist"]   

objectforkey: @"glossentry"]   

objectforkey: @"glossdef"]   

objectforkey: @"glossseealso"];  

nslog(@"glossary title: %@", glossarytitle);  

nslog(@"glossdiv title : %@", glossdivtitle);  

nslog(@"glossseealso item 1: %@", [glossseealso objectatindex:0]);  

nslog(@"glossseealso item 2: %@", [glossseealso objectatindex:1]);  

第 2 行是將檔案內容放到nsstring內。

第 5 行創造乙個json parser,準備將json字串轉換成object

第 6 行將json字串轉換成nsdictionary,而這乙個nsdictionary內的object亦已經被json parser轉換成相對應的 object,例如:nsarray,nsdictionary,nsstring等等。

第 8 行是使用關鍵字"glossary"抽取object,因為這個object是包含以下部份的資料:

[html]view plain

copy

print?

,  "glosssee": "markup"  

}  }  

}  }  

第 9 行是使用以上的資料再加上關鍵字"title"去抽取內容,以上資料加上關鍵字"title"內的內容是"example glossary",所以回傳的object是乙個nsstring object

第 14 行則是抽取"glossseealso"的內容,以內容則是以下這些:

["gml", "xml"]

如你所見,這是乙個array, 所以回傳的object是乙個nsarray object

最後列印出來的內容會是以下這些:

[html]view plain

copy

print?

2010-08-27 15:15:44.003 json[47655:207] glossary title: example glossary  

2010-08-27 15:15:44.049 json[47655:207] glossdiv title : s  

2010-08-27 15:15:44.050 json[47655:207] glossseealso item 1: gml  

2010-08-27 15:15:44.050 json[47655:207] glossseealso item 2: xml  

如果json資料是經由網路去讀取,可以用以下方法:

[html]view plain

copy

print?

nsurlrequest *request

= [nsurlrequest requestwithurl:[nsurl urlwithstring:@""]];  

nsdata *response

= [nsurlconnection sendsynchronousrequest:request returningresponse:nil error:nil];  

nsstring *jsonstr

= [[nsstring alloc] initwithdata:response encoding:nsutf8stringencoding];  

範例下載: json.zip

iphone ios json解析流程,教程

大家幫忙捧捧場 json是現時流行的資料格式,與xml相比,json更為輕巧。在傳輸相同資料時,json在大部份情況也會較xml的檔案小,在手機網路上傳輸json亦會比xml快。在iphone cocoa touch framework中並沒有library去操作json資料格式。幸好有一些人為ob...

JSON解析 XML解析

json解析 1大括號代表字典 2中括號 小括號 代表陣列 3冒號的左右兩邊分別為鍵和值 key value 4資料和資料之間 用逗號隔開 我們在本機上建立乙個file.xml,進行解析,並取出年齡35 json解析 本地讀取student.xm l檔案nsstring jstr nsstring ...

JSON解析 XML解析

主要是顯示地理位置和天氣以及溫度。對網路請求下來的json資料進行解析。import viewcontroller.h define kweatherurl inte ce viewcontroller property weak,nonatomic iboutlet uilabel citylab...