¼òÃ÷ÏÖ´úħ·¨ -> Ajax¼¼Êõ -> Ajax ½Ì³Ì£º·þÎñÆ÷¶ËµÄ JSON
Ajax ½Ì³Ì£º·þÎñÆ÷¶ËµÄ JSON2010-01-23
ÔÚ·þÎñÆ÷¶Ë½Å±¾ºÍ³ÌÐòÖÐÓà JSON ½øÐÐÏìÓ¦ºÍ»Ø¸´
ÔÚ ±¾ÏµÁÐ×î½ü·¢±íµÄһƪÎÄÕÂÖУ¬ÄúÒѾÁ˽âÁËÈçºÎ½« JavaScript ¶ÔÏóת±ä³É JSON ¸ñʽ¡£ÕâÖÖ¸ñʽºÜÈÝÒ×ÓÃÓÚ·¢ËÍ£¨ºÍ½ÓÊÕ£©Óë¶ÔÏóÉõÖÁ¶ÔÏóÊý×é¶ÔÓ¦µÄÊý¾Ý¡£ÔÚ ±¾ÏµÁÐ µÄ×îºóһƪÎÄÕÂÖУ¬Äú½«»áѧϰÈçºÎ´¦ÀíÒÔ JSON ¸ñʽ·¢Ë͵½·þÎñÆ÷µÄÊý¾ÝÒÔ¼°ÈçºÎʹÓÃÏàͬ¸ñʽ¶Ô½Å±¾½øÐлظ´¡£
JSON µÄÕæÕý¼ÛÖµÕýÈçÔÚ ±¾ÏµÁÐÉÏһƪÎÄÕ ÖÐËùÃèÊöµÄÄÇÑù£¬JSON ÊÇÊÊÓÃÓÚ Ajax Ó¦ÓóÌÐòµÄÒ»ÖÖÓÐЧ¸ñʽ£¬ÔÒòÊÇËüʹ JavaScript ¶ÔÏóºÍ×Ö·û´®ÖµÖ®¼äµÃÒÔ¿ìËÙת»»¡£ÓÉÓÚ Ajax Ó¦ÓóÌÐò·Ç³£ÊʺϽ«´¿Îı¾·¢Ë͸ø·þÎñÆ÷¶Ë³ÌÐò²¢¶ÔÓ¦µØ½ÓÊÕ´¿Îı¾£¬Ïà±È²»ÄÜÉú³ÉÎı¾µÄ API£¬ÄÜÉú³ÉÎı¾µÄ API ×ÔÈ»¸ü¿ÉÈ¡£»¶øÇÒ£¬JSON ÈÃÄúÄܹ»´¦Àí±¾µØ JavaScript ¶ÔÏ󣬶øÎÞÐèΪÈçºÎ±íʾÕâЩ¶ÔÏó¶à·ÑÐÄ˼¡£
XML Ò²¿ÉÒÔÌṩÎı¾·½ÃæµÄÀàËÆÒæ´¦£¬µ«ÓÃÓÚ½« JavaScript ¶ÔÏóת»»³É XML µÄ¼¸¸öÏÖÓÐ API ûÓÐ JSON API ³ÉÊ죻ÓÐʱ£¬Äú±ØÐëÔÚ´´½¨ºÍ´¦Àí JavaScript ¶ÔÏóʱ¸ñÍâ½÷É÷ÒÔÈ·±£Ëù½øÐеĴ¦ÀíÄÜÓëËùÑ¡ÓÃµÄ XML »á»° API Ð×÷¡£µ«¶ÔÓÚ JSON£¬Çé¿ö¾Í´ó²»Ïàͬ£ºËüÄÜ´¦Àí¼¸ºõËùÓпÉÄܵĶÔÏóÀàÐÍ£¬²¢»á·µ»Ø¸øÄúÒ»¸ö·Ç³£ºÃµÄ JSON Êý¾Ý±íʾ¡£
Òò´Ë£¬JSON µÄ×î´ó¼ÛÖµÔÚÓÚ¿ÉÒÔ½« JavaScript ÕæµÄ×÷Ϊ JavaScript ¶ø·ÇÊý¾Ý¸ñʽÓïÑÔ½øÐд¦Àí¡£ÄúËùѧµ½µÄËùÓÐÓйØÊ¹Óà JavaScript ¶ÔÏóµÄ¼¼Çɶ¼¿ÉÒÔÓ¦Óõ½´úÂëÖУ¬¶øÎÞÐèΪÈçºÎ½«ÕâЩ¶ÔÏóת±ä³ÉÎı¾¶ø¶à·ÑÐÄ˼¡£ÕâÖ®ºó£¬¿ÉÒÔ½øÐÐÈçÏÂËùʾµÄ¼òµ¥ JSON ·½·¨µ÷Óãº
String myObjectInJSON = myObject.toJSONString();ÏÖÔھͿÉÒÔ½«½á¹ûÎı¾·¢Ë͸ø·þÎñÆ÷ÁË¡£
½« JSON ·¢¸ø·þÎñÆ÷½« JSON ·¢¸ø·þÎñÆ÷²¢²»ÄÑ£¬µ«È´ÖÁ¹ØÖØÒª£¬¶øÇÒ»¹ÓÐÒ»Ð©ÖØÒªµÄÑ¡ÔñÒª×ö¡£µ«ÊÇ£¬Ò»µ©¾ö¶¨Ê¹Óà JSON£¬ËùÒª×öµÄÕâЩѡÔñ¾Í»áÊ®·Ö¼òµ¥¶øÇÒÊýÁ¿ÓÐÏÞ£¬ËùÒÔÄúÐèÒª¿¼ÂǺ͹Ø×¢µÄÊÂÇé²»¶à¡£ÖØÒªµÄÊÇÄܹ»½« JSON ×Ö·û´®·¢Ë͸ø·þÎñÆ÷£¬¶øÇÒ×îºÃÄÜ×öµ½¾¡¿ìºÍ¾¡¿ÉÄܼòµ¥¡£
ͨ¹ý GET ÒÔÃû³Æ/Öµ¶Ô·¢ËÍ JSON½« JSON Êý¾Ý·¢¸ø·þÎñÆ÷µÄ×î¼òµ¥·½·¨Êǽ«Æäת»»³ÉÎı¾£¬È»ºóÒÔÃû³Æ/Öµ¶ÔµÄÖµµÄ·½Ê½½øÐз¢ËÍ¡£ÇëÎñ±Ø×¢Ò⣬JSON ¸ñʽµÄÊý¾ÝÊÇÏ൱³¤µÄÒ»¸ö¶ÔÏ󣬿´ÆðÀ´¿ÉÄÜ»áÈçÇåµ¥ 1 Ëùʾ£º
Çåµ¥ 1. JSON ¸ñʽµÄ¼òµ¥ JavaScript ¶ÔÏó
var people = { "programmers": [ { "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" }, { "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" }, { "firstName": "Elliotte", "lastName":"Harold", "email": "elharo@macfaq.com" } ], "authors": [ { "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" }, { "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" }, { "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" } ], "musicians": [ { "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" }, { "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" } ] }Èç¹ûÒªÒÔÃû³Æ/Öµ¶Ô½«Æä·¢Ë͵½·þÎñÆ÷¶Ë£¬Ó¦¸ÃÈçÏÂËùʾ£º
var url = "organizePeople.php?people=" + people.toJSONString(); xmlHttp.open("GET", url, true); xmlHttp.onreadystatechange = updatePage; xmlHttp.send(null);Õâ¿´ÆðÀ´²»´í£¬µ«È´´æÔÚÒ»¸öÎÊÌ⣺ÔÚ JSON Êý¾ÝÖлáÓпոñºÍ¸÷ÖÖ×Ö·û£¬Web ä¯ÀÀÆ÷ÍùÍùÒª³¢ÊÔ¶ÔÆä¼ÌÐø±àÒ롣Ҫȷ±£ÕâЩ×Ö·û²»»áÔÚ·þÎñÆ÷ÉÏ£¨»òÕßÔÚ½«Êý¾Ý·¢Ë͸ø·þÎñÆ÷µÄ¹ý³ÌÖУ©ÒýÆð»ìÂÒ£¬ÐèÒªÔÚ JavaScript escape() º¯ÊýÖÐ×öÈçÏÂÌí¼Ó£º
var url = "organizePeople.php?people=" + escape(people.toJSONString()); request.open("GET", url, true); request.onreadystatechange = updatePage; request.send(null);¸Ãº¯Êý¿ÉÒÔ´¦Àí¿Õ¸ñ¡¢Ð±ÏßºÍÆäËûÈκοÉÄÜÓ°Ïìä¯ÀÀÆ÷µÄÄÚÈÝ£¬²¢½«ËüÃÇת»»³É Web ¿ÉÓÃ×Ö·û£¨±ÈÈ磬¿Õ¸ñ»á±»×ª»»³É %20£¬ä¯ÀÀÆ÷²¢²»»á½«ÆäÊÓΪ¿Õ¸ñ´¦Àí£¬¶øÊDz»×ö¸ü¸Ä£¬½«ÆäÖ±½Ó´«µÝµ½·þÎñÆ÷£©¡£Ö®ºó£¬·þÎñÆ÷»á£¨Í¨³£×Ô¶¯£©ÔÙ°ÑËüÃÇת»»»ØËüÃÇ´«ÊäºóµÄ±¾À´ ¡°ÃæÄ¿¡±¡£
ÕâÖÖ×ö·¨µÄȱµãÓÐÁ½¸ö£º
¼òÑÔÖ®£¬ÒÔÉÏÊÇ GET ÇëÇóµÄÁ½¸öÏÞÖÆ£¬¶ø²»ÊǼòµ¥µÄÁ½¸öÓë JSON Êý¾ÝÏà¹ØµÄÊÂÇé¡£ÔÚÏëÒª·¢ËÍÓû§ÃûºÍÐÕÖ®ÍâµÄ¸ü¶àÄÚÈÝ£¬±ÈÈç±íµ¥ÖеÄÑ¡Ôñʱ£¬¶þÕß¿ÉÄÜ»áÐèÒª¶à¼Ó×¢Òâ¡£ÈôÒª´¦ÀíÈκλúÃÜ»ò¼«³¤µÄÄÚÈÝ£¬¿ÉÒÔʹÓà POST ÇëÇó¡£
ÀûÓà POST ÇëÇó·¢ËÍ JSON Êý¾Ýµ±¾ö¶¨Ê¹Óà POST ÇëÇó½« JSON Êý¾Ý·¢Ë͸ø·þÎñÆ÷ʱ£¬²¢²»ÐèÒª¶Ô´úÂë½øÐдóÁ¿¸ü¸Ä£¬ÈçÏÂËùʾ£º
var url = "organizePeople.php?timeStamp=" + new Date().getTime(); request.open("POST", url, true); request.onreadystatechange = updatePage; request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); request.send(people.toJSONString());ÕâЩ´úÂëÖеĴ󲿷֣¬Äú¶¼ÔÚ ¡° ÕÆÎÕ Ajax£¬µÚ 3 ²¿·Ö£ºAjax Öеĸ߼¶ÇëÇóºÍÏìÓ¦¡± Öмû¹ý£¬Ó¦¸Ã±È½ÏÊìϤ£¬µÚ 3 ²¿·ÖÖØµã½éÉÜÁËÈçºÎ·¢ËÍ POST ÇëÇó¡£ÇëÇóʹÓà POST ¶ø·Ç GET ´ò¿ª£¬¶øÇÒ Content-Type Í·±»ÉèÖÃΪÈ÷þÎñÆ÷Ô¤ÖªËüÄܵõ½ºÎÖÖÊý¾Ý¡£ÔÚÕâÖÖÇé¿öÏ£¬¼´Îª application/x-www-form-urlencoded£¬ËüÈ÷þÎñÆ÷ÖªµÀÏÖÔÚ·¢Ë͵ÄÊÇÎı¾£¬ÕýÈçËü´Ó³£¹æµÄ HTML ±íµ¥Öеõ½µÄÒ»Ñù¡£
ÁíÒ»¸ö¼òµ¥ÌáʾÊÇ URL µÄĩβ׷¼ÓÁËʱ¼ä¡£Õâ¾ÍÈ·±£ÁËÇëÇó²»»áÔÚËüµÚÒ»´Î±»·¢Ëͺ󼴻º´æ£¬¶øÊÇ»áÔÚ´Ë·½·¨Ã¿´Î±»µ÷ÓúóÖØÐ´´½¨ºÍÖØ·¢£»´Ë URL »áÓÉÓÚʱ¼ä´ÁµÄ²»Í¬¶øÉÔ΢ÓÐЩ²»Í¬¡£ÕâÖÖ¼¼Çɳ£±»ÓÃÓÚÈ·±£µ½½Å±¾µÄ POST ÿ´Î¶¼»áʵ¼ÊÉú³ÉÐÂÇëÇóÇÒ Web ·þÎñÆ÷²»»á³¢ÊÔ»º´æÀ´×Ô·þÎñÆ÷µÄÏìÓ¦¡£
JSON ¾ÍÖ»ÊÇÎı¾²»¹ÜʹÓà GET »¹ÊÇ POST£¬¹Ø¼üÖ®´¦ÔÚÓÚ JSON ¾ÍÖ»ÊÇÎı¾¡£ÓÉÓÚ²»ÐèÒªÌØÊâ±àÂë¶øÇÒÿ¸ö·þÎñÆ÷¶Ë½Å±¾¶¼ÄÜ´¦ÀíÎı¾Êý¾Ý£¬ËùÒÔ¿ÉÒÔÇáËÉÀûÓà JSON ²¢½«ÆäÓ¦Óõ½·þÎñÆ÷¡£¼ÙÈç JSON ÊǶþ½øÖƸñʽµÄ»òÊÇһЩ¹ÖÒìµÄÎı¾±àÂ룬Çé¿ö¾Í²»Õâô¼òµ¥ÁË£»ÐҺà JSON Ö»Êdz£¹æµÄÎı¾Êý¾Ý£¨ÕýÈç½Å±¾ÄÜ´Ó±íµ¥Ìá½»ÖÐËù½ÓÊÕµ½µÄÊý¾Ý£¬ÔÚ POST ¶ÎºÍ Content-Type Í·ÖÐÒà¿ÉÒÔ¿´³ö£©£¬ËùÒÔÔÚ½«Êý¾Ý·¢Ë͵½·þÎñÆ÷ʱÎÞÐèÌ«·ÑÐÄ¡£
ÔÚ·þÎñÆ÷ÉϽâÊÍ JSON
¡¡