js如何获取json值

JavaScript013

js如何获取json值,第1张

通过循环就可以将json里的值全部获取了;

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()