在js中如何取出json中的对象的值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在js中如何取出json中的对象的值相关的知识,希望对你有一定的参考价值。
现有一个从php端返回的json(变量名为gets):
"code":0,"data":["uid":"689791","username":"vaghyuzhihao","orgid":"627","status":"1","subname":"yuzhihao","roleids":"1","orgcode":"600251","name":"yuzhihao","mapid":"0","passwd":"","siteid":"0","createorgcode":"600251","alarmview":"0"]
请取出data中uid的值
我是这么写的:alert(gets.uid);
返回的是undefined
请问该怎么取 在线等!
二楼少了个括号
var json = eval("("+str+")"); 参考技术A 你这个是个字符串。JSON.parse一下就行了 参考技术B var str = "code":0,"data":["uid":"689791","username":"vaghyuzhihao","orgid":"627","status":"1","subname":"yuzhihao","roleids":"1","orgcode":"600251","name":"yuzhihao","mapid":"0","passwd":"","siteid":"0","createorgcode":"600251","alarmview":"0"];var json = eval(str);
console.log(json.data[0].uid);
一般返回的都是字符串,需要对其对象化
我照你说的做了一下,还是这样的提示
其实alert未处理过的变量时,是一个object,不是string,不用处理也可以,就是找不到uid的值,疯掉了,大神!若何破....
var str = "code":0,"data":["uid":"689791","username":"vaghyuzhihao","orgid":"627","status":"1","subname":"yuzhihao","roleids":"1","orgcode":"600251","name":"yuzhihao","mapid":"0","passwd":"","siteid":"0","createorgcode":"600251","alarmview":"0"];
if(typeof str === 'object')
json = str;
else
json = eval(str);
console.log(json.data[0].uid);
试试这个,判断输入的是否为object,是则直接输出,不是则将其转换成object再输出
本回答被提问者采纳 参考技术C 你前台是用什么接收的?追问js
追答2楼正解!
json中怎么取出对象的属性值啊?
java代码:
DaPermitMenu dp = daPermitMenuBiz.getDaPermitMenuById((long)5); HttpServletResponse res = ServletActionContext.getResponse(); res.reset(); res.setContentType("text/html;charset=utf-8"); PrintWriter pw = res.getWriter(); JSONObject ss = JSONObject.fromObject(dp); pw.print(ss); pw.flush(); pw.close(); return null;
js代码: $.ajax( url: "<c:url value='/permission/getTResource.action' />", type: 'POST', dataType: 'text', success: function(data) alert(data); , error: function() alert('err!'); return false; );
我怎么能取出rescourceCode对应的属性值呢??财富值就这些了,不好意思啊
json中取出对象的属性值步骤如下:
1、打开vscode,创建一个测试页面JsonTest.html,用于演示在js中如何获取json对象的属性集合。
2、在测试页面中,定义一个js变量,将其赋值为json格式的字符串,用于模拟从后台返回过来的json字符串值,以及后续转换为json对象,和获取其属性集合。var json = "[\\"Col1\\": \\"Hello\\", \\"Col2\\": \\"World\\", \\"Col1\\": \\"您好\\", \\"Col2\\": \\"世界\\"]"。
3、使用js的eval函数,将json字符串的变量值,转换为json对象。var $json = eval("(" + json + ")");
4、得到json对象之后,使用for-in循环语句,得到json对象的序号,也就是,这个json对象中,还有多少个子对象。
5、因为js是弱类型的语言,并不要求json对象中的每个子对象属性都一样。所以,在得到序号之后,使用Object.keys($json[i]); 就能获取到当前json子对象的属性集合。
6、如果想要获取到json对象的每个具体的列名和值,就需要再加一个for循环,遍历列名,得到列名和值。
参考技术A 如果直接取值可以data['rescourceCode'],但是你必须一个json对象,记住是对象,你现在返回是一个文本字符串,而非对象,你应该修改你的ajax的dataType: 'json',才可以。如果是遍历json对象:用(for a in data) a为属性名,data[n]为属性值本回答被提问者采纳
以上是关于在js中如何取出json中的对象的值的主要内容,如果未能解决你的问题,请参考以下文章
map中键为对象,用js将map中的键取出时,如何取出对象,以及它的属性