js如何获取json值

JavaScript034

js如何获取json值,第1张

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

var json = {'name':'xxxxx', 'age':27}

for(var name in json){

document.write(json[name])

}

var json = { contry:{ area:{ man:"12万", women:"10万" } } }

//方式一:使用eval解析

var obj = eval(json)

alert(obj.constructor)

alert(obj.contry.area.women)

//方式二:使用Funtion函数

var strJSON = "{name:'json name'}"//得到的JSON

var obj = new Function("return" + strJSON)()//转换后的JSON对象

alert(obj.name)//json name

alert(obj.constructor)

//复杂一点的json数组数据的解析

var value1 = [{"c01":"1","c02":"2","c03":"3","c04":"4","c05":"5","c06":"6","c07":"7","c08":"8","c09":"9"}, {"c01":"2","c02":"4","c03":"5","c04":"2","c05":"8","c06":"11","c07":"21","c08":"1","c09":"12"}, {"c01":"5","c02":"1","c03":"4","c04":"11","c05":"9","c06":"8","c07":"1","c08":"8","c09":"2"}] var obj1 = eval(value1)

alert(obj1[0].c01)

//复杂一点的json的另一种形式

var value2 = {"list":[ {"password":"1230","username":"coolcooldool"}, {"password":"thisis2","username":"okokok"}], "array":[{"password":"1230","username":"coolcooldool"},{"password":"thisis2","username":"okokok"}]}

var obj2 = eval(value2)

alert(obj2.list[0].password)

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