var data = [
      {
        "Name": "鸟瞰1",
        "id": "1",
        "x": "-15.7304939843579",
        "y": "-193.351530865896",
        "z": "172.79275048241"
      },
      {
        "Name": "鸟瞰2",
        "id": "2",
        "x": "-15.7304939843579",
        "y": "-193.351530865896",
        "z": "172.79275048241"
      },
      {
        "Name": "鸟瞰3",
        "id": "3",
        "x": "-15.7304939843579",
        "y": "-193.351530865896",
        "z": "172.79275048241"
      }
];
一段json,怎么根据id获取其他属性。如:根据id:2,获取其对应的NAME、x、y、zjsonjavascriptjs

解决方案 »

  1.   

    循环了for(var i=0;i<data.length;i++){
      if(data[i].id=="2"){
      alert(data[i].Name+"----"+data[i].x+"----"+data[i].y+"----"+data[i].z);
      }
    }
      

  2.   

    这里你的
    data[1]=  {
            "Name": "鸟瞰2",
            "id": "2",
            "x": "-15.7304939843579",
            "y": "-193.351530865896",
            "z": "172.79275048241"
          }so
     +1
      

  3.   

    var newData = {};
    for( i = 0; i < data.length; i++ )
      newData[ data[ i ].id ] = data[ i ];
    newData[ '1' ];
      

  4.   


    <!doctype html>
    <html lang='zh_CN'>
    <head>
    <meta charset='utf-8' />
    <title>程序升级中...</title>
    <script type="text/javascript">
    var data = [
          {
            "Name": "鸟瞰1",
            "id": "1",
            "x": "-15.7304939843579",
            "y": "-193.351530865896",
            "z": "172.79275048241"
          },
          {
            "Name": "鸟瞰2",
            "id": "2",
            "x": "-15.7304939843579",
            "y": "-193.351530865896",
            "z": "172.79275048241"
          },
          {
            "Name": "鸟瞰3",
            "id": "3",
            "x": "-15.7304939843579",
            "y": "-193.351530865896",
            "z": "172.79275048241"
          }
    ];
    function get_by_id(id,data){
    for(var i=0;len=data.length,i<len;i++){
    if(data[i].id==id)
    return data[i];
    }
    return false;
    }
    console.log(get_by_id(3,data).Name);
    //输出鸟瞰3
    </script>
    </head>
    <body>
    <h2 style='text-align:center;'>程序升级中,请稍后访问...</h2>
    </body>
    </html>
      

  5.   

    var newData = {};
    for( i = 0; i < data.length; i++ )
      newData[ data[ i ].id ] = data[ i ];
    newData[ '1' ].Name;4楼的那个少个Name。如果数据量比较大,使用的次数比较多的话这样效率应该能高一点,不过我不敢确定。
      

  6.   

    http://www.jb51.net/article/35510.htm看看这个对你有帮助没,我记得以前看过一篇文章,js也能像委托那样使用。
      

  7.   

    +1正解,这个我只有用循环去挨个判断啦
    但是如果可以的话可以换个json结构

    var data={
     "1":{"name":"鸟瞰1", "x": "-15.7304939843579","y": "-193.351530865896","z": "172.79275048241"},
    "2"::{"name":"鸟瞰2", "x": "-15.7304939843579","y": "-193.351530865896","z": "172.79275048241"}
    }
    那么可以通过键获取值啦
    var item=data["2"];
    name=items.name;//“鸟瞰2”