关于从json字符串中取数据的问题求教

杨帆9527 2017-06-08 02:10:55

[
{
"id": "1",
"num":"123",
"age": "23"
},
{
"id": "2",
"num":" 234",
"age":"20"
}
]


类似上面这个json,现在我要在js里面通过id和num获取对应的age的值,该怎么写,以前没怎么玩过json,求大神解答!!!
...全文
314 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
杨帆9527 2017-06-08
  • 打赏
  • 举报
回复
谢谢大神,我先去写后台,一会儿去前端测试一下,再次谢谢您了!!!
天际的海浪 2017-06-08
  • 打赏
  • 举报
回复
引用 3 楼 qq_29679231 的回复:
[quote=引用 1 楼 jslang 的回复:]

var json = [
            {
               "id": "1",
               "num":"123",
                "age": "23"
            },
            {
               "id": "2",
                "num":" 234",
                "age":"20"
            }
];
function getItem(arr,n,v) {
	for (var i = 0; i < arr.length; i++)
		if (arr[i][n]==v)
			return arr[i];
}

alert(getItem(json,"id","2").age);
alert(getItem(json,"num","123").age);
对不起,对不起,我没表述清楚,我是想根据id和num,这两个“键”,获取对应的age,类似这种 select age from json where id=1 and num =123 大神就是大神,我改改这个方法应该就可以,不过还有没有更简单更快捷的方法?因为实际项目中的json比较长,查询要尽量快点,麻烦大神了!!![/quote]

var json = [
            {
               "id": "1",
               "num":"123",
                "age": "23"
            },
            {
               "id": "2",
                "num":"234",
                "age":"20"
            }
];
function getItem(arr,obj) {
	arrFor: for (var i = 0; i < arr.length; i++) {
		for (var n in obj)
			if (arr[i][n]!=obj[n])
				continue arrFor;
		return arr[i];
	}
}

alert(getItem(json,{"id":"2","num":"234"}).age);
杨帆9527 2017-06-08
  • 打赏
  • 举报
回复
引用 2 楼 baronyang 的回复:
1楼的就可以了,但楼主还是要搞清json的结构和取值的基本原则,遇到数组就用[索引]来取,遇到json就用['Key']来取值或json变量.key来取
谢谢回复,主要是以前没怎么玩过json,今天突然要用,看来要去学习一下,谢谢!!
杨帆9527 2017-06-08
  • 打赏
  • 举报
回复
引用 1 楼 jslang 的回复:

var json = [
            {
               "id": "1",
               "num":"123",
                "age": "23"
            },
            {
               "id": "2",
                "num":" 234",
                "age":"20"
            }
];
function getItem(arr,n,v) {
	for (var i = 0; i < arr.length; i++)
		if (arr[i][n]==v)
			return arr[i];
}

alert(getItem(json,"id","2").age);
alert(getItem(json,"num","123").age);
对不起,对不起,我没表述清楚,我是想根据id和num,这两个“键”,获取对应的age,类似这种 select age from json where id=1 and num =123 大神就是大神,我改改这个方法应该就可以,不过还有没有更简单更快捷的方法?因为实际项目中的json比较长,查询要尽量快点,麻烦大神了!!!
人鱼传说 2017-06-08
  • 打赏
  • 举报
回复
1楼的就可以了,但楼主还是要搞清json的结构和取值的基本原则,遇到数组就用[索引]来取,遇到json就用['Key']来取值或json变量.key来取
天际的海浪 2017-06-08
  • 打赏
  • 举报
回复

var json = [
            {
               "id": "1",
               "num":"123",
                "age": "23"
            },
            {
               "id": "2",
                "num":" 234",
                "age":"20"
            }
];
function getItem(arr,n,v) {
	for (var i = 0; i < arr.length; i++)
		if (arr[i][n]==v)
			return arr[i];
}

alert(getItem(json,"id","2").age);
alert(getItem(json,"num","123").age);

87,920

社区成员

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

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