js处理json和字符串示例

本文提供多个JavaScript示例,展示如何实现JSON数据的增删改查,包括数组元素的比较及DOM操作,适用于前端开发人员学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

js处理json格式的插入、修改、删除,以及字符串的比较等常用操作


demo 1: 

json格式的插入、删除

[html]  view plain  copy
 print ?
  1. <html>  
  2.     <head>  
  3.         <title></title>  
  4.         <script language="javascript">  
  5.             function change(){  
  6.                 var obj=document.getElementById("floor");  
  7.                 if (document.getElementById("qu").value=="1"){  
  8.                     var t=document.createElement("OPTION");  
  9.                     t.text="第五楼";  
  10.                     t.value="5";  
  11.                     obj.add(t);  
  12.                 }else if(document.getElementById("qu").value=="2"){  
  13.                     for(var i=0; i<obj.length;i++){  
  14.                         if(obj.options[i].value=="5"){  
  15.                             obj.remove(i);  
  16.                             return;  
  17.                         }  
  18.                     }  
  19.                 }  
  20.             }  
  21.         </script>  
  22.     </head>  
  23.     <body>  
  24.     <form id="form1" name="form1" method="post" action="">  
  25.       
  26.       <select multiple="multiple" name="qu" id="qu" onchange="change()" style="width: 150px; height: 300px;">  
  27.         <option value="请选择所在区">--请选择所在区--</option>  
  28.         <option value="1">南开区</option>  
  29.         <option value="2">红桥区</option>  
  30.       </select>  
  31.         
  32.       <select multiple="multiple" name="floor" id="floor" style="width: 150px; height: 300px;">  
  33.           <option value="请选择楼层">--请选择楼层--</option>  
  34.           <option value="1">第一楼</option>  
  35.           <option value="2">第二楼</option>  
  36.           <option value="3">第三楼</option>  
  37.           <option value="4">第四楼</option>  
  38.         </select>  
  39.     </form>  
  40.       
  41.     </body>  
  42. </html>  
运行结果:




demo2:

[html]  view plain  copy
 print ?
  1. <!DOCTYPE html>  
  2. <html>  
  3.     <script language="javascript">  
  4.         function toLeft() {  
  5.             var list1 = document.getElementById("list1");  
  6.             var list2 = document.getElementById("list2");  
  7.     
  8.             for (var i = list2.options.length-1; i >= 0 ; i--) {  
  9.                 if(list2.options[i].selected ==true){  
  10.                     var op = document.createElement("option");  
  11.                     op.text = list2.options[i].text;  
  12.                     op.value = list2.options[i].value;  
  13.                     list1.add(op);  
  14.                     list2.remove(i);  
  15.                 }  
  16.             }  
  17.         }  
  18.   
  19.         function toRight() {  
  20.             var list1 = document.getElementById("list1");  
  21.             var list2 = document.getElementById("list2");  
  22.     
  23.             for (var i = list1.options.length-1; i >= 0 ; i--) {  
  24.                 if(list1.options[i].selected ==true){  
  25.                     var op = document.createElement("option");  
  26.                     op.text = list1.options[i].text;  
  27.                     op.value = list1.options[i].value;  
  28.                     list2.add(op);  
  29.                     list1.remove(i);  
  30.                 }  
  31.             }  
  32.         }  
  33.   
  34.         function submit() {  
  35.             var list2 = document.getElementById("list2");  
  36.             var innerStr = "";  
  37.             for (var i = 0; i < list2.options.length; i++) {  
  38.                 innerStr += i + " - " + list2.options[i].text + " : " + list2.options[i].value + "</br>";  
  39.             }  
  40.             var wt = document.getElementById("wt");  
  41.             wt.innerHTML = innerStr;  
  42.         }  
  43.     </script>  
  44. </head>  
  45.   
  46. <body>  
  47. <div>  
  48. <select multiple="multiple" id="list1" style="width: 500px; height: 100px;>  
  49.   <option value="volvo">Volvo</option>  
  50.   <option value="saab">Saab</option>  
  51.   <option value="opel">Opel</option>  
  52.   <option value="audi">Audi</option>  
  53. </select>  
  54.   
  55. <input type="button" value=">" onclick="toRight();submit()"/>    
  56. <input type="button" value="<" onclick="toLeft();submit()"/>  
  57.   
  58. <select multiple="multiple" id="list2" style="width: 500px; height: 100px;>  
  59.   <option value="volvo">Volvo</option>  
  60.   <option value="saab">Saab</option>  
  61.   <option value="opel">Opel</option>  
  62.   <option value="audi">Audi</option>  
  63. </select>  
  64.   
  65. <input type="button" value="submit" onclick="submit()"/>  
  66. <div id="wt"/></div>  
  67.   
  68. </body>  
  69. </html>  

运行结果:



Demo 3:

json元素的插入、修改、删除,以及与字符串的转化格式

[html]  view plain  copy
 print ?
  1. <html>  
  2. <head>  
  3. <title>IT-Homer demo</title>  
  4. </head>  
  5.   
  6. <body>  
  7.     <input type="button" id="parse" value="parse json" onclick="parseJson()" />  
  8.     <div id="txt"  />   
  9.       
  10.     <script type="text/javascript">  
  11.         function parseJson(){  
  12.             var txt = document.getElementById("txt");  
  13.           
  14.             var jsonData = '{"name":"it-homer","age":25}';  
  15.             var field = "";  
  16.               
  17.             if(jsonData.length <= 0){  
  18.                 jsonData = '{}';  
  19.             }  
  20.                   
  21.             var jsonObj = JSON.parse(jsonData);             // ok  
  22.         //  var jsonObj = eval('(' + jsonData + ')');       // ok  
  23.         //  var jsonObj = jsonData.parseJSON();             // error  
  24.             field += "name = " + jsonObj.name;  
  25.             field += ", age = " + jsonObj.age;  
  26.               
  27.             jsonObj["sex"] = "boy";     // add json, {"name":"it-homer","age":25,"sex":"boy"}  
  28.         //  createJson(jsonObj, "sex", "boy");  
  29.           
  30.             jsonData = JSON.stringify(jsonObj);     // ok   
  31.         //  jsonData = jsonObj.toJSONString();      // error  
  32.                   
  33.             var sex = "";  
  34.             if(jsonObj.length > 0) {  
  35.                 sex = jsonObj.sex;  
  36.             }  
  37.                   
  38.             txt.innerHTML = field + "</br>" + jsonData;  
  39.         }  
  40.           
  41.         function createJson(jsonObj, key, value){  
  42.             if(typeof value === "undefined"){  
  43.                 delete jsonObj[key];  
  44.             } else {  
  45.                 jsonObj[key] = value;  
  46.             }             
  47.         }  
  48.     </script>  
  49. </body>  
  50. </html>  
运行结果:




Demo4: 

比较两个字符串不同的元素并打印出来,其中两个字符串是包含关系,即一个字符串一定是另一个字符串的子串,如{1,2,4}是{1,2,3,4,5}的子串

[html]  view plain  copy
 print ?
  1. <html>  
  2. <head>  
  3. <title>IT-Homer demo</title>  
  4. </head>  
  5.   
  6. <body>  
  7.     <input type="button" id="parse" value="parse json" onclick="parseJson222()" />  
  8.     <div id="txt"  />   
  9.       
  10.     <script type="text/javascript">         
  11.         function parseJson222(){  
  12.             var txt = document.getElementById("txt");  
  13.           
  14.     //      var jsonData_old = '_2,4,_4,21,_5,22,8,_7,23,_9,11,12,13,61';  
  15.     //      var jsonData_new = '_2,_3,1,2,3,4,_4,21,_5,22,_6,5,6,7,8,_7,23,_9,11,12,13,14,-1,61';         
  16.               
  17.             var jsonData_new = '_2,4,_4,21,_5,22,8,_7,23,_9,11,12,13,61';  
  18.             var jsonData_old = '_2,_3,1,2,3,4,_4,21,_5,22,_6,5,6,7,8,_7,23,_9,11,12,13,14,-1,61';  
  19.               
  20.             var diff = diffJson(jsonData_old, jsonData_new);  
  21.   
  22.             txt.innerHTML = diff;  
  23.               
  24.             printArray("diff", diff);  
  25.         }  
  26.           
  27.         function diffJson(jsonData_old, jsonData_new){  
  28.             var diff = "";  
  29.               
  30.             var oldArray = jsonData_old.split(",");  
  31.             var newArray = jsonData_new.split(",");  
  32.             var oldLen = oldArray.length;  
  33.             var newLen = newArray.length;  
  34.               
  35.             var minLen = Math.min(oldLen, newLen);  
  36.             if(minLen == newLen){  
  37.                 tmpArray = newArray;    // swap array  
  38.                 newArray = oldArray;  
  39.                 oldArray = tmpArray;  
  40.                   
  41.                 newLen = oldLen;        // swap array length  
  42.                 oldLen = minLen;  
  43.             }  
  44.               
  45.             printArray("newArray", newArray);  
  46.             printArray("oldArray", oldArray);  
  47.               
  48.             var arr = [];  
  49.             for(i=0; i<newLen; i++){  
  50.                 var j=0;  
  51.                 for(j=0; j<oldLen; j++){  
  52.                     if(newArray[i] == oldArray[j]){  
  53.                         break;  
  54.                     }  
  55.                 }  
  56.                 if(j == oldLen){  
  57.                     arr.push(newArray[i]);  
  58.                 }  
  59.             }  
  60.             return arr;  
  61.         }  
  62.           
  63.         function printArray(tag, arr){  
  64.             var len = arr.length;  
  65.             document.write("<br>");  
  66.             document.write(tag + " : " + arr.toString());  
  67.         }  
  68.   
  69.     </script>  
  70. </body>  
  71. </html>  
运行结果:



Demo5:


[html]  view plain  copy
 print ?
  1. <html>  
  2. <head>  
  3. <title>hello</title>  
  4. <style type="text/css">  
  5. #adddelTextId{  
  6.     float: clean;  
  7. }  
  8.   
  9. normal {  
  10.     font-style: normal;  
  11.     color: #000000;  
  12. }  
  13.   
  14. add {  
  15.     font-style: normal;  
  16.     color: #cc0000;  
  17. }  
  18.   
  19. del {  
  20.     font-style: normal;  
  21.     color: #0000ff;  
  22.     text-decoration: line-through;  
  23. }  
  24. </style>  
  25. </head>  
  26.   
  27. <body onload="initLoad()">  
  28.   
  29. <textarea id="textareaId" name="aaa" cols="50" rows="5" >  
  30. </textarea><br />  
  31.   
  32. <div>  
  33.     <div id="normalTextId" style="float:left">我,喜,欢</div>  
  34.     <add><div id="addTextId" style="float:left">,你</div></add>  
  35.     <del><div id="delTextId">,做,朋,友</div></del>  
  36. </div>  
  37.   
  38. <input type="button" value="click me" onclick="hh()">  
  39.   
  40. <script language="javascript">  
  41.     var textareaId = document.getElementById("textareaId");  
  42.           
  43.     var adddelTextId = document.getElementById("adddelTextId");  
  44.     var normalTextId = document.getElementById("normalTextId");  
  45.     var addTextId = document.getElementById("addTextId");  
  46.     var delTextId = document.getElementById("delTextId");  
  47.           
  48.     function initLoad(){  
  49.         adddelText = normalTextId.innerHTML + addTextId.innerHTML;  
  50.         textareaId.innerHTML = adddelText;  
  51.     }  
  52.   
  53.     function hh(){  
  54.         adddelTextFunc(true, ",IT-Homer");  
  55.         adddelTextFunc(false, ",Sunboy_2050");  
  56.     }  
  57.       
  58.     function adddelTextFunc(isAdd, txt){  
  59.         if(isAdd){                              // add  
  60.             addTextId.innerHTML = txt;  
  61.         } else {                                // del  
  62.             delTextId.innerHTML = txt;        
  63.         }  
  64.           
  65.         adddelText = normalTextId.innerHTML + addTextId.innerHTML;        
  66.         textareaId.innerHTML = adddelText;  
  67.     }  
  68. </script>  
  69.   
  70. </body>  
  71. </html>  
运行结果:




参考推荐:

js 数组Array用法

26 个 jQuery使用技巧


Dynatree - Example Browser

jquery-fileTree

zTree

js 将json与String互转


from: http://blog.youkuaiyun.com/ithomer/article/details/10337499

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值