var json = {'name':'xxxxx', 'age':27}
for(var name in json){
document.write(json[name])
}
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循环,遍历列名,得到列名和值。
通过 JSON.parse 将你的 JsonInfo 的字符串类型的变量转为 js 对象:var jsonObj = JSON.parse(jsonStr)
看到 json 字符串里的中括号了没有?这个对象名为 sites 的 key 对应的 value 是一个数组,也就是 sites[0],sites[1]...你可以理解为 jsonObj 的 sites 就是一个数组名,所以也就具备了 length 这个属性。
接着可以循环这个数组,找出数组中的对象的 title 属性为"数量"的那个数组对象即可。
别说什么就没有看懂网上的资料,不知道你认真看了没有。认真看不可能看不懂的,一遍不行看两遍,两遍不行看三遍。就是把一个普通的对象换成了数组,就不认识了吗。
var jsonStr = '{"sites":
[
{"title":"数量", "ReadOnly":"true"},
{"title":"单位", "ReadOnly":"false"}
] }'
function getReadOnly() {
var jsonObj = JSON.parse(jsonStr)
var amountReadOnly
var sitesLength = jsonObj.sites.length
for (var i = 0 i < sitesLength i++) {
if (jsonObj.sites[i].title === "数量") {
amountReadOnly = jsonObj.sites[i].ReadOnly
break
}
}
return amountReadOnly
}
getReadOnly()