查找json数据

jy02409187 2012-03-30 11:37:22

[
{"id": 123, "con": "gggdfg"},
{"id": 124, "con": "jgjjghj"},
{"id": 125, "con": "khkhk"},
{"id": 126, "con": "ggtyuryrty"},
{"id": 127, "con": "dfsfsf"}
]


例如上面,我要查找id=125的con的内容应该怎么写啊
...全文
687 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
liminjun88 2013-04-28
  • 打赏
  • 举报
回复
我现在就是存到li里面,但是如何解决递归查找呀?
wzhiyuan 2012-03-30
  • 打赏
  • 举报
回复
如果你的结构就是这样的两个元素,而且每个ID都不重复,为了以后随时取用某个ID的CON,我建议可以加这个数据存储到一个关联数组中

var arr1 = [
{ "id": 123, "con": "gggdfg" },
{ "id": 124, "con": "jgjjghj" },
{ "id": 125, "con": "khkhk" },
{ "id": 126, "con": "ggtyuryrty" },
{ "id": 127, "con": "dfsfsf" }
];
var arr2 = new Array;
for (var i = 0; i < arr1.length; i++) {
arr2[arr1[i]["id"]] = arr1[i]["con"];
}
alert(arr2["125"]);
hellNo 2012-03-30
  • 打赏
  • 举报
回复

var t2 = [
{"id": 123, "con": "gggdfg"},
{"id": 124, "con": "jgjjghj"},
{"id": 125, "con": "khkhk"},
{"id": 126, "con": "ggtyuryrty"},
{"id": 127, "con": "dfsfsf"}
];
var myobj=eval(t2);
for(var i=0;i<myobj.length;i++){
alert(myobj[i].id);
alert(myobj[i].con);
}
ohmygirl 2012-03-30
  • 打赏
  • 举报
回复
function getCon(array){
for(var i = 0;i<array.length;i++){
var obj = array[i];
if(obj.id == "125"){
return obj.con;
}
}
return null;
}
var array = [ {"id": 123, "con": "gggdfg"}, {"id": 124, "con": "jgjjghj"}, {"id": 125, "con": "khkhk"}, {"id": 126, "con": "ggtyuryrty"}, {"id": 127, "con": "dfsfsf"} ]
var result = getCon(array);
alert(result);
xuzuning 2012-03-30
  • 打赏
  • 举报
回复
遍历呀
<script>
d = [
{"id": 123, "con": "gggdfg"},
{"id": 124, "con": "jgjjghj"},
{"id": 125, "con": "khkhk"},
{"id": 126, "con": "ggtyuryrty"},
{"id": 127, "con": "dfsfsf"}
];

for(i=0; i<(d.length); i++)
if(d[i].id == 125) alert(d[i].con);
</script>
fangkaifang 2012-03-30
  • 打赏
  • 举报
回复
遍历json不就好了嘛 遍历json的方法百度一把就ok了
jy02409187 2012-03-30
  • 打赏
  • 举报
回复
$("li[id="+id+"]").html(json[i].con);

原来是脑子抽了,这样就可以
prototyper 2012-03-30
  • 打赏
  • 举报
回复
HASH数据FOR IN索引效率高THAN ARRAY。
prototyper 2012-03-30
  • 打赏
  • 举报
回复
最好是你后台返回(或者在现有返回下转换成)这样格式的HASH TABLE:json = {123 : "gggdfg", 126 : "jgjjghj"。。。。。}。
jy02409187 2012-03-30
  • 打赏
  • 举报
回复
其实我要实现的是

<ul>
<li id="123"></li>
<li id="124"></li>
<li id="125"></li>
<li id="126"></li>
<li id="127"></li>
</ul>

把JSON里面的数据准备写到li里面

var json = [
{ "id": 123, "con": "gggdfg" },
{ "id": 124, "con": "jgjjghj" },
{ "id": 125, "con": "khkhk" },
{ "id": 126, "con": "ggtyuryrty" },
{ "id": 127, "con": "dfsfsf" }
];

如果用这个就很好写

var num = json.length;
for(var i=0; i<num; i++){
if( json[i].id == li.eq(i).attr("id")){
li.eq(i).html(json[i].con);
}
}

但有个问题就是当JSON里面的ID顺序和LI的ID顺序不一致时就会出错

var json = [
{ "id": 123, "con": "gggdfg" },
{ "id": 126, "con": "jgjjghj" },
{ "id": 124, "con": "khkhk" },
{ "id": 126, "con": "ggtyuryrty" },
{ "id": 125, "con": "dfsfsf" }
];

87,990

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧