java json javascript

json 字符串

形式一  多个对象传送、

  • var datas="
  • {
  • root:
  • [
  • {name:'1',value:'0'},
  • {name:'6101',value:'北京市'},
  • {name:'6102',value:'天津市'},
  • {name:'6103',value:'上海市'},
  • {name:'6104',value:'重庆市'},
  • {name:'6105',value:'渭南市'},
  • {name:'6106',value:'延安市'},
  • {name:'6107',value:'汉中市'},
  • {name:'6108',value:'榆林市'},
  • {name:'6109',value:'安康市'},
  • {name:'6110',value:'商洛市'}
  • ]
  • }"; 

    页面解析:

      var obj = eval(obj); // 转换为对象

      alert(obj[0].length);//  11

    形式二一个对象传送、

    var datas = "({name:'1',value:'0',name1:'6101',value1:'北京市',name2:'6102',value2:'天津市'})";

    页面解析:

    var obj = eval(obj);

    alert(obj);

     

    范例:使用Ajax 访问后台获得数据 ,将数据转换为 JSON 字符串,前台解析该Json字符串

    <script type="text/javascript">
     var req = null;
     function getResult() {
            var url = "/AjaxJson/servlet/JsonServlet?state="+new Date().getTime();
            if (window.XMLHttpRequest) {
                    req = new XMLHttpRequest();
            }else if (window.ActiveXObject) {
                    req = new ActiveXObject("Microsoft.XMLHTTP");
            }
            if(req){
                    req.open("GET",url, true);
                    req.onreadystatechange = complete;
                    req.send(null);
            }
       } 
      function complete(){
            if (req.readyState == 4) {
                    if (req.status == 200) {
                            var city = req.responseText;
                            city = eval(city);  //对象数组
                            var s = "name";
                            for(var i=0; i<city.length; i++){
                             s = "name"+i;  
    //对象属性名 的 拼接
                             var obj = city[i]; // city[i].s  方式无法获取
                             alert(obj[s]);    //索引获取对象值
                            }   
                    }
            }
        }
     </script>

    后台:

        PrintWriter pw = response.getWriter();
               String datas="{ " +
                 "root:[" +
                 "{name0:'1',value:'0'}," +
                 "{name1:'6101',value:'北京市'}," +
                 "{name2:'6102',value:'天津市'}," +
                 "{name3:'6103',value:'上海市'}" +
                 "]" +
                 "}";
               pw.print(datas);
               pw.flush();
               pw.close();

    总结:

  •  

    惯例 主要框架为 :( {   +.....+  } )  当传送一个对象的时候"....." 直接为 "对象属性名:对象属性值" ,... ,.. ;

                 当传送对象为多个的时候".....".为 数组名:[  ]里面包括多个对象{},{}

  • 注意:({})js 会将其里面内容解析成一个对象:上例中的 ( { root: [ {}, {} ] } )  被解析成一个拥有 一个数组对象root的 对象,  如果不存在( ),将被直接解析成一个无名的对象数组

  •    [ ] js 解析成 一个数组 {} 解析成一个对象

  •    在上面红色字体标出,通过拼接的 对象属性名 是否只能通过对象索引[ index]方式获得,用obj.拼接的属性名 方法无法获取,有人能解释吗
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值