<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                **@JSON**(JavaScript Object Notation) 是一種輕量級的數據交換格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一個子集。 JSON采用完全獨立于語言的文本格式,但是也使用了類似于C語言家族的習慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。這些特性使JSON成為理想的數據交換語言。易于人閱讀和編寫,同時也易于機器解析和生成 **@JSON 語法規則:** 1.JSON 語法是 JavaScript 對象表示語法的子集。 ? ?數據在名稱/值對中 ? ?數據由逗號分隔 ? ?花括號保存對象 ? ?方括號保存數組 ? ?JSON 名稱/值對 2.JSON 數據的書寫格式是:名稱/值對。 ? ?名稱/值對包括字段名稱(在雙引號中),后面寫一個冒號,然后是值:"firstName":"John" 3.JSON 值可以是: ? ?數字(整數或浮點數) ? ?字符串(在雙引號中) ? ?邏輯值(true 或 false) ? ?數組(在方括號中) ? ?對象(在花括號中) ? ?null **@JSON建構有兩種結構:** json簡單說就是javascript中的對象和數組,所以這兩種結構就是對象和數組兩種結構,通過這兩種結構可以表示各種復雜的結構 1、對象:對象在js中表示為“{}”括起來的內容,數據結構為 {key:value,key:value,...}的鍵值對的結構,在面向對象的語言中,key為對象的屬性,value為對應的屬性值,所以很容易理解,取值方法為 對象.key 獲取屬性值,這個屬性值的類型可以是 數字、字符串、數組、對象幾種。 2、數組:數組在js中是中括號“[]”括起來的內容,數據結構為 ["java","javascript","vb",...],取值方式和所有語言中一樣,使用索引獲取,字段值的類型可以是 數字、字符串、數組、對象幾種。 經過對象、數組2種結構就可以組合成復雜的數據結構了。 **@基礎示例** ? ? ---整體是個對象,對象的key是"programmers",value是一個數組,數組里面又包含3個對象 {"programmers":[ {"firstName":"Brett","lastName":"McLaughlin","email":"aaaa"}, {"firstName":"Jason","lastName":"Hunter","email":"bbbb"}, {"firstName":"Elliotte","lastName":"Harold","email":"cccc"} ], "authors":[ {"firstName":"Isaac","lastName":"Asimov","genre":"sciencefiction"}, {"firstName":"Tad","lastName":"Williams","genre":"fantasy"}, {"firstName":"Frank","lastName":"Peretti","genre":"christianfiction"} ], "musicians":[ {"firstName":"Eric","lastName":"Clapton","instrument":"guitar"}, {"firstName":"Sergei","lastName":"Rachmaninoff","instrument":"piano"} ]} **@具體形式:** 1、對象是一個無序的“‘名稱/值’對”集合。 (1)一個對象以“{”(左括號)開始,“}”(右括號)結束。 (2)每個“名稱”后跟一個“:”(冒號); (3)“‘名稱/值’ 對”之間使用“,”(逗號)分隔。(如圖所示,圖中表示數據的方式是類似非確定性[自動機](http://baike.baidu.com/view/409351.htm)的形式,沒學過[編譯原理](http://baike.baidu.com/view/29903.htm)的人,可能理解起來困難點,實際上也是[正則表達式](http://baike.baidu.com/view/94238.htm)的形式。下同) 例子:表示人的一個對象: { "姓名":"大憨", "年齡":24 } 2、數組是值(value)的有序集合。 (1)一個數組以“[”(左中括號)開始,“]”(右中括號)結束。 (2)值之間使用“,”(逗號)分隔。 例子:一組學生 { "學生": [ {"姓名":"小明","年齡":23}, {"姓名":"大憨","年齡":24} ] } 說明:此Json對象包括了一個學生數組,而學生數組中的值又是兩個Json對象。 3、值(value)可以是雙引號括起來的字符串(string)、數值(number)、true、false、 null、對象(object)或者數組(array)。這些結構可以嵌套。 4、[字符](http://baike.baidu.com/view/263416.htm)串(string)是由雙引號包圍的任意數量Unicode字符的集合,使用反斜線轉義。一個字符(character)即一個單獨的字符串(character string)。 字符串(string)與C或者Java的字符串非常相似。 5、數值(number)也與C或者Java的數值非常相似。除去未曾使用的[八進制](http://baike.baidu.com/view/234126.htm)與十六進制格式。除去一些編碼細節。 **@系統提供的JSON解析類----NSJSONSerialization** ~~~ #pragma mark - 系統提供的JSON解析類 - (void)onClickSystem{ // 加載一個本地的JSON文件路徑,放到NSData對象中去 NSData * jsonData = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Person" ofType:@"txt"]]; NSError * error = nil; // 把一個json格式的data,解析為OC中的數據對象(一般為數組或字典) id obj = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&error]; // 判斷一下,id是NSMutableArray類型還是NSMutableDictionary if ([obj isKindOfClass:[NSArray class]]) { NSMutableArray * array = obj; NSLog(@"*************%@",array); }else{ NSMutableDictionary * dic = obj; NSLog(@"???????????????%@",dic); } // 把一個OC中的數據對象(數組或對象--在OC中類似字典)轉換成JSON格式的數據 NSDictionary * dic = @{@"to": @"壯壯",@"content":@"晚上見",@"from": @"曉宇",@"data": @"2014.04.18"}; NSLog(@"DIC = %@",dic); NSData * data = [NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error:&error]; // 把一個json格式的data,解析為OC中的NSString類型對象 // 無特殊意義,一般用來查看JSON文本封裝成 數組 還是 對象(OC中為字典) NSString * jsonString = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]; NSLog(@"-----------------------------%@",jsonString); } ~~~ **@第三方類----JSONKit** ~~~ #pragma mark - 第三方類JSONKit - (void)onClickJSONKit{ #pragma mark 把JSON格式的數據轉換成OC中的數據對象 // 從文檔中讀取json格式的Data NSData * jsonData = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Person" ofType:@"txt"]]; // json格式的Data轉化為OC對象 id obj1 = [jsonData objectFromJSONData]; NSLog(@"%@",obj1); // 從文檔中讀取json格式的String NSString * jsonString = [NSString stringWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Person" ofType:@"txt"] encoding:NSUTF8StringEncoding error:nil]; // json格式的String轉化為OC對象 id obj2 = [jsonString objectFromJSONString]; NSLog(@"%@",obj2); #pragma mark 把一個OC中的數據對象轉換成JSON格式的數據 NSDictionary * dic = @{@"to": @"壯壯",@"content":@"晚上見",@"from": @"曉宇",@"data": @"2014.04.18"}; // 轉化為json格式的Data NSData * dataJson = [dic JSONData]; // 轉化為json格式的String NSString * stringJson = [dic JSONString]; } ~~~ @代碼樣例: ~~~ { "country": { "province": { "-number": "3", "-name": "河北", "city": [ { "-number": "9", "-name": "張家口市", "area": [ { "-number": "146", "#text": "橋西區" }, { "-number": "147", "#text": "橋東區" }, { "-number": "148", "#text": "宣化區" }, { "-number": "149", "#text": "下花園區" }, { "-number": "150", "#text": "宣化縣" }, { "-number": "151", "#text": "張北縣" }, { "-number": "152", "#text": "康保縣" }, { "-number": "153", "#text": "沽源縣" }, { "-number": "154", "#text": "尚義縣" }, { "-number": "162", "#text": "崇禮縣" } ] }, { "-number": "10", "-name": "承德市", "area": [ { "-number": "163", "#text": "雙橋區" }, { "-number": "164", "#text": "雙灤區" }, { "-number": "165", "#text": "鷹手營子礦區" }, { "-number": "166", "#text": "承德縣" }, { "-number": "167", "#text": "興隆縣" }, { "-number": "168", "#text": "平平縣" }, { "-number": "169", "#text": "灤平縣" } ] }, { "-number": "11", "-name": "滄州市", "area": [ { "-number": "174", "#text": "運河區" }, { "-number": "175", "#text": "新華區" }, { "-number": "176", "#text": "泊頭區" }, { "-number": "177", "#text": "任丘區" }, { "-number": "185", "#text": "肅寧縣" }, { "-number": "186", "#text": "南皮縣" } ] }, { "-number": "12", "-name": "廊坊市", "area": [ { "-number": "190", "#text": "安次區" }, { "-number": "191", "#text": "廣陽區" }, { "-number": "192", "#text": "霸州市" }, { "-number": "193", "#text": "三河市" }, { "-number": "194", "#text": "固安縣" }, { "-number": "195", "#text": "永清縣" } ] }, { "-number": "13", "-name": "衡水市", "area": [ { "-number": "202", "#text": "桃城區" }, { "-number": "203", "#text": "冀州市" }, { "-number": "204", "#text": "深州市" }, { "-number": "205", "#text": "棗強縣" }, { "-number": "206", "#text": "武邑縣" } ] } ] } } } ~~~ ~~~ #pragma mark - 系統類NSJSONSerialization - (void)initializeAllDataOfNSJSONSerialization{ self.allProvinceArray = [NSMutableArray array]; NSData * jsonData = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"hebei" ofType:@"txt"]]; NSError * error = nil; id obj = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&error]; NSMutableDictionary * countryDic = obj; NSDictionary * countryInfo = [countryDic objectForKey:@"country"]; NSDictionary * provinceInfo = [countryInfo objectForKey:@"province"]; NSString * pName = [provinceInfo objectForKey:@"-name"]; NSString * pNumber = [provinceInfo objectForKey:@"-number"]; HMTProvince * province = [[HMTProvince alloc]initWithName:pName withNumber:pNumber]; [self.allProvinceArray addObject:province]; NSArray * cityArray = [provinceInfo objectForKey:@"city"]; for (int i = 0; i < [cityArray count]; i++) { NSDictionary * cityInfo = [cityArray objectAtIndex:i]; NSString * cName = [cityInfo objectForKey:@"-name"]; NSString * cNumber = [cityInfo objectForKey:@"-number"]; HMTCity * city = [[HMTCity alloc]initWithName:cName withNumber:cNumber]; [province.cityArray addObject:city]; NSArray * areaArray = [cityInfo objectForKey:@"area"]; for (int j = 0; j < [areaArray count]; j++) { NSString * aName = [[areaArray objectAtIndex:j] objectForKey:@"#text"]; NSString * aNumber = [[areaArray objectAtIndex:j] objectForKey:@"-number"]; HMTArea * area = [[HMTArea alloc]initWithName:aName withNumber:aNumber]; [city.areaArray addObject:area]; [area release]; } [city release]; } [province release]; } #pragma mark - 系統類JSONKit - (void)initializeAllDataOfJSONKit{ self.allProvinceArray = [NSMutableArray array]; NSData * jsonData = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"hebei" ofType:@"txt"]]; id obj = [jsonData objectFromJSONData]; NSMutableDictionary * countryDic = obj; NSDictionary * countryInfo = [countryDic objectForKey:@"country"]; NSDictionary * provinceInfo = [countryInfo objectForKey:@"province"]; NSString * pName = [provinceInfo objectForKey:@"-name"]; NSString * pNumber = [provinceInfo objectForKey:@"-number"]; HMTProvince * province = [[HMTProvince alloc]initWithName:pName withNumber:pNumber]; [self.allProvinceArray addObject:province]; NSArray * cityArray = [provinceInfo objectForKey:@"city"]; for (int i = 0; i < [cityArray count]; i++) { NSDictionary * cityInfo = [cityArray objectAtIndex:i]; NSString * cName = [cityInfo objectForKey:@"-name"]; NSString * cNumber = [cityInfo objectForKey:@"-number"]; HMTCity * city = [[HMTCity alloc]initWithName:cName withNumber:cNumber]; [province.cityArray addObject:city]; NSArray * areaArray = [cityInfo objectForKey:@"area"]; for (int j = 0; j < [areaArray count]; j++) { NSString * aName = [[areaArray objectAtIndex:j] objectForKey:@"#text"]; NSString * aNumber = [[areaArray objectAtIndex:j] objectForKey:@"-number"]; HMTArea * area = [[HMTArea alloc]initWithName:aName withNumber:aNumber]; [city.areaArray addObject:area]; [area release]; } [city release]; } [province release]; } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看