日期:2014-05-16  浏览次数:20429 次

json取值问题请教!~
有json串如下:

var c_list={"list":[{n:"北京市",l:[{n:"市辖区0"}]},{n:"天津市",l:[{n:"市辖区1"}]},{n:"上海市",l:[{n:"市辖区2"}]}]};



我想用 市名称 获取该市下属辖区的 L 组子数据数据,如:

c_list.list["北京市"].l.length


该如何写呢?
json javascript

------解决方案--------------------
c_list.list[0].l

------解决方案--------------------
引用:
引用:JavaScript code?1c_list.list[0].l 谢谢,我知道这种写法,我是想说能否不用键索引,而去查找 N=["北京市"]来获取呢?
能否尽量避免循环整个json串来查找?!

因为我这边有可能没法直接获取键索引,只有键值!~
索引肯定一直都在的,你说的意思是同样键值可能处在不同索引的位置上吧,我觉得索引绕不开
------解决方案--------------------
你的数据格式换下就行了。

var c_list = {
    "list" : {
        "北京市" : {
            l : [{
                    n : "市辖区0"
                }
            ]
        },
        "天津市" : {
            l : [{
                    n : "市辖区1"
                }
            ]
        },
        "上海市" : {
            l : [{
                    n : "市辖区2"
                }
            ]
        }
    }
};

------解决方案--------------------
我觉得不用循环还是拿不到吧。除非你在后台就已经排好序,然后直接按1楼的:c_list.list[0].l ,0的话你就知道是北京市。

------解决方案--------------------
var c_list={list:[{n:"北京市",l:[{n:"市辖区0"}]},{n:"天津市",l:[{n:"市辖区1"}]},{n:"上海市",l:[{n:"市辖区2"}]}]};

function findCityLocale(c){
    for(var i in c_list.list){
        if (c_list.list[i].n===c){
            return c_list.list[i].l;
        }
    }
}

var bjl = findCityLocale('北京市');
if (bjl){
    alert(bjl[0].n);
}
else{
    alert('not founded');
}

------解决方案--------------------