I;m Shendi
目录
JSONObject
格式为 {"key": value, "key": value}
字符串可通过 eval 函数处理
var jsonObject = eval('(' + json + ')');
JS的对象与 JSON格式对应
已知键名获取
这是最常用的,一般都知道json数据里有啥,只需要取出来
直接使用 jsonObject.键 来获取
例如 {"a": 1, "b": 2}
var a = jsonObject.a;
var b = jsonObject.b;
获取所有key,value
通过 Object.keys(jsonObject) 将所有的键转化为数组
var keys = Object.keys(jsonObject);
// keys == ["a", "b"];
通过 Object.values(jsonObject) 将所有值转化为数组
var values = Object.values(jsonObject);
// values == [1, 2];
通过 Object.entries(jsonObject) 将所有键值转化为二维数组
var entrys = Object.entries(jsonObject);
// entrys == [["a", 1], ["b", 2]];
还有就是将 json 转map在做操作了
遍历
根据上面说的,遍历有两种方法
一种是通过 keys 来遍历,一种是for in
通过 keys 来遍历
var keys = Object.keys(jsonObject);
for (var i = 0; i < keys.length; i++) {
console.log(keys[i] + "=" + jsonObject[keys[i]);
}
// a=1
// b=2
通过 for in遍历
for (i in jsonObject) {
console.log(i + "=" + jsonObject[i]);
}
// a=1
// b=2
JSONArray
格式为 [{key: value}, {key: value}]
如果是字符串,直接通过 eval 来转换
与 js 内数组使用方法一致
遍历数组
var jsonArray = eval("[{\"a\": 1},{\"b\":2}]");
for (i in jsonArray) {
var obj = jsonArray[i];
for (key in obj) {
console.log(key + "=" + obj[key]);
}
}
// a=1
// b=2
当然也可以如下方式遍历
var jsonArray = eval("[{\"a\": 1},{\"b\":2}]");
for (var i = 0; i < jsonArray.length; i++) {
var obj = jsonArray[i];
for (key in obj) {
console.log(key + "=" + obj[key]);
}
}
// a=1
// b=2
一键三连嘛?