1. 主页 > 小妙招

5分钟掌握JSON解析与生成的5种常用方法,附代码实例

鈥?strong>鈥嬪紑澶存彁闂細鈥?/strong>鈥?br/> "鑰侀搧浠紝浣犱滑鏈夋病鏈夐亣鍒拌繃杩欑鎯呭喌锛熸槑鏄庢兂浠庢湇鍔″櫒鎷跨偣鏁版嵁锛岀粨鏋滄嬁鍒版墜鐨勫氨鏄竴涓茬湅涓嶆噦鐨勫瓧姣嶇鍙凤紵鍝庡懄鍠傦紝杩欏氨鏄紶璇翠腑鐨凧SON鍟婏紒鍒厡锛屼粖澶╁挶浠氨鐢ㄦ渶鎺ュ湴姘旂殑鏂瑰紡锛?鍒嗛挓璁╀綘浠庡皬鐧藉彉澶х锛?


涓€銆丣SON鍒板簳鏄暐锛熶负鍟ヨ繖涔堥噸瑕侊紵

鈥?strong>鈥嬩竴鍙ヨ瘽璇翠汉璇濓細鈥?/strong>鈥?JSON灏辨槸涓?鏁版嵁蹇€掔洅"锛屼笓闂ㄧ敤鏉ユ妸鏁版嵁鎵撳寘鎴愨€?strong>鈥嬬粺涓€鏍煎紡鈥?/strong>鈥嬶紝鏂逛究涓嶅悓绯荤粺涔嬮棿浼犻€掍俊鎭€?/p>

涓句釜鏍楀瓙馃尠锛氫綘缃戣喘鏃剁湅鍒扮殑鍟嗗搧淇℃伅锛屽悗鍙板氨鏄敤JSON鏍煎紡浼犺緭鐨勶細

json澶嶅埗
{
  "product": "绋嬪簭鍛樹笓灞炴牸瀛愯~",
  "price": 99.9,
  "stock": true
}

鈥?strong>鈥嬪叧閿偣璁颁綇锛氣€?/strong>鈥?閿悕蹇呴』鐢ㄥ弻寮曞彿鍖呯潃锛屽€煎彲浠ユ槸鏁板瓧/瀛楃涓?甯冨皵鍊煎暐鐨勩€備綘鍝侊紝浣犵粏鍝侊紝鏄笉鏄瘮涔辩爜椤虹溂澶氫簡锛?/p>


浜屻€?绉嶅父鐢ㄦ柟娉曞ぇ姣旀嫾

鏂规硶1锛欽avaScript鍘熺敓澶ф硶濂斤紙鏈€绠€鍗曪級

鈥?strong>鈥嬮€傜敤鍦烘櫙锛氣€?/strong>鈥?缃戦〉寮€鍙戙€佸皬绋嬪簭

javascript澶嶅埗
// 瑙f瀽锛氭妸JSON瀛楃涓插彉鍥炲璞?/span>
const data = JSON.parse('{"name":"寮犱笁","age":25}')

// 鐢熸垚锛氭妸瀵硅薄鍙樻垚JSON瀛楃涓?/span>
const jsonStr = JSON.stringify({name:"鏉庡洓",vip:true})

鈥?strong>鈥嬩釜浜鸿鐐癸細鈥?/strong>鈥?杩欑粷瀵规槸鏂版墜鍏ラ棬棣栭€夛紒娴忚鍣ㄦ帶鍒跺彴鐩存帴灏辫兘璇曪紝杩炲紑鍙戠幆澧冮兘涓嶇敤瑁咃紒


鏂规硶2锛歅ython涓囪兘閫夋墜锛堟渶閫傚悎鏁版嵁澶勭悊锛?/h4>

鈥?strong>鈥嬮€傜敤鍦烘櫙锛氣€?/strong>鈥?鏁版嵁鍒嗘瀽銆佺埇铏?/p>

python澶嶅埗
import json

# 瑙f瀽锛氱洿鎺ヨ浆瀛楀吀
data = json.loads('{"city":"鍖椾含","pm25":42}')

# 鐢熸垚锛氬瓧鍏哥鍙楯SON
json_str = json.dumps({"weather":"鏅?,"temp":28})

鈥?strong>鈥嬪喎鐭ヨ瘑锛氣€?/strong>鈥?Python閲屽崟寮曞彿鍜屽弻寮曞彿閮借兘鐢紝浣咼SON鏍囧噯鍙鍙屽紩鍙凤紒鍒湪杩欑炕杞﹀晩鍏勫紵浠紒


鏂规硶3锛欽ava鑰佸ぇ鍝ワ紙鏈€涓ヨ皑锛?/h4>

鈥?strong>鈥嬮€傜敤鍦烘櫙锛氣€?/strong>鈥?瀹夊崜寮€鍙戙€佷紒涓氱骇绯荤粺

java澶嶅埗
import com.fasterxml.jackson.databind.ObjectMapper;

// 瑙f瀽锛氬璞℃槧灏勫ぇ娉?/span>
User user = new ObjectMapper().readValue(jsonString, User.class);

// 鐢熸垚锛氬璞¤浆JSON瀛楃涓?/span>
String json = new ObjectMapper().writeValueAsString(user);

鈥?strong>鈥嬮伩鍧戞寚鍗楋細鈥?/strong>鈥?鏂版墜璁板緱瀵糐ackson搴擄紒鍒敤鍘熺敓JSONObject锛岄偅鐜╂剰鑳芥妸浜烘姌纾ㄥ摥...


鏂规硶4锛歅HP鐗硅壊鐜╂硶锛堟渶澶嶅彜锛?/h4>

鈥?strong>鈥嬮€傜敤鍦烘櫙锛氣€?/strong>鈥?鑰佺墝缃戠珯缁存姢

php澶嶅埗
// 瑙f瀽锛氭暟缁勫埌鎵?/span>
$data = json_decode('{"site":"鐭ヤ箮","type":"闂瓟"}', true);

// 鐢熸垚锛氭暟缁勫彉JSON
echo json_encode(["lang"=>"PHP","version"=>8]);

鈥?strong>鈥嬬湡鐩告椂鍒伙細鈥?/strong>鈥?鍒湅PHP鐜板湪鐢ㄧ殑浜哄皯浜嗭紝浣嗙幇瀛樼殑鑰佺郴缁熼噷JSON澶勭悊闇€姹傝繕鐪熶笉灏戯紒


鏂规硶5锛氬湪绾垮伐鍏锋€ユ晳鍖咃紙鏈€鏃犺剳锛?/h4>

鈥?strong>鈥嬫帹鑽愬伐鍏凤細鈥?/strong>鈥?/p>

  • JSON.cn锛堝浗浜х鍣級
  • JSONFormatter锛堣嫳鏂囦絾濂界敤锛?/li>

鈥?strong>鈥嬩娇鐢ㄥ満鏅細鈥?/strong>鈥?/p>

  1. 涓存椂楠岃瘉JSON鏍煎紡
  2. 蹇€熺編鍖栧帇缂╄繃鐨凧SON
  3. 鏍煎紡杞崲锛堟瘮濡侸SON杞琗ML锛?/li>

鈥?strong>鈥嬭娉暀璁細鈥?/strong>鈥?鍗冧竾鍒妸鏁忔劅鏁版嵁寰€涓嶆槑缃戠珯璐达紒浣犳噦鐨勶綖


涓夈€侀珮棰戦棶棰樿嚜闂嚜绛?/h3>

鈥?strong>鈥婹锛氫负鍟ユ垜鐨凧SON鎬绘姤閿欙紵鈥?/strong>鈥?br/> A锛?0%鐨勯棶棰樺嚭鍦ㄨ繖浜涘湴鏂癸細

  1. 鏈€鍚庝竴涓睘鎬у浜嗛€楀彿
  2. 閿悕娌$敤鍙屽紩鍙?/li>
  3. 鏁板€肩被鍨嬫贩鐢ㄥ瓧绗︿覆

鈥?strong>鈥婹锛氶€夊摢绉嶆柟娉曟渶濂斤紵鈥?/strong>鈥?br/> A锛氱湅浣犵殑浣跨敤鍦烘櫙锛?/p>

  • 涓存椂澶勭悊 鉃?鍦ㄧ嚎宸ュ叿
  • 鍋氱綉椤?鉃?JavaScript
  • 鎼炴暟鎹?鉃?Python
  • 浼佷笟寮€鍙?鉃?Java

涓汉蹇冨緱浣撲細

浣滀负涓€涓俯杩囨棤鏁板潙鐨勮€佺爜鍐滐紝寤鸿鏂版墜杩欎箞鐜╋細

  1. 鈥?strong>鈥嬪厛鐜╄浆鍦ㄧ嚎宸ュ叿鈥?/strong>鈥嬶細鐩磋鎰熷彈JSON缁撴瀯锛屽煿鍏绘暟鎹晱鎰熷害
  2. 鈥?strong>鈥嬩粠JavaScript鍏ユ墜鈥?/strong>鈥嬶細椹笂鑳界湅鍒版晥鏋滐紝澧炲己瀛︿範淇″績
  3. 鈥?strong>鈥嬭繘闃舵椂瀛ython鈥?/strong>鈥嬶細澶勭悊澶嶆潅鏁版嵁鏃舵晥鐜囩洿鎺ヨ捣椋?/li>
  4. 鈥?strong>鈥嬮伩鍧戠鍣ㄨ鐗㈣鈥?/strong>鈥嬶細
    • VSCode瑁匤SON鎻掍欢锛堝疄鏃舵牎楠岋級
    • 澶氱敤console.log(typeof 鍙橀噺)鏌ョ被鍨?/li>

璁颁綇锛孞SON璇村埌搴曞氨鏄釜鏁版嵁鎼繍宸ャ€傚埆琚悇绉嶉珮澶т笂鐨勫悕璇嶅敩浣忥紝鎶撲綇鈥?strong>鈥嬮敭鍊煎鈥?/strong>鈥嬭繖涓牳蹇冿紝鍓╀笅鐨勫氨鏄笉鍚岃瑷€鐨勮娉曞樊寮傜舰浜嗐€傚垰寮€濮嬪彲鑳戒細鎵嬪繖鑴氫贡锛屼絾鍧氭寔缁冧釜涓変簲娆★紝淇濊瘉浣犱篃鑳借劚鍙h€屽嚭锛?灏辫繖锛熺畝鍗曪紒"

本文由嘻道妙招独家原创,未经允许,严禁转载