JSON
json 转化为数组
function jsonToArray(obj) {
let r = { key: [], value: [] };
for (let k in obj) {
if (!obj.hasOwnProperty(k)) {
continue;
}
r.key.push(k);
r.value.push(obj[k]);
}
return r;
}
let json = { a: 1, b: 2, c: 3, d: 4, e: 5 };
let arrJson = jsonToArray(json);
console.log(arrJson);
console.log('key:' + arrJson.key[0]); // key:a
console.log('value:' + arrJson.value[0]); // value:1
console.log('keylen:' + arrJson.key.length); // keylen:5
hasOwnProperty
表示是否有自己的属性。这个方法会查找一个对象是否有某个属性,但是不会去查找它的原型链。
格式化 JSON 代码
JSON.stringify()
不仅可以简单地将对象转化为字符串,也可以用它来格式化 JSON 输出
const obj = {
foo: { bar: [11, 22, 33, 44], baz: { bing: true, boom: 'Hello' } }
};
// The third parameter is the number of spaces used to
// beautify the JSON output.
JSON.stringify(obj, null, 4);
// "{
// "foo": {
// "bar": [
// 11,
// 22,
// 33,
// 44
// ],
// "baz": {
// "bing": true,
// "boom": "Hello"
// }
// }
// }"
JSON.parse()
能将 json 格式的字符串转化为 json 对象
warning
JSON.parse()
和 JSON.stringify()
支持 IE8 及其以上版本
通过 key 获取 value
直接获取
const getJson = function (key) {
const json = { a: 1, b: 2, c: 3, d: 4, e: 5 };
return json[key];
};
getJson('a'); // 1
eval()
eval()
函数可计算某个字符串,并执行其中的的 js 代码
function getJson(key) {
const json = { a: 1, b: 2, c: 3, d: 4, e: 5 };
return eval('json.' + key);
}
getJson('a'); // 1
遍历 json 获取其属性
function getJson(key) {
const json = { a: 1, b: 2, c: 3, d: 4, e: 5 };
for (let i in json) {
if (i === key) {
return json[i]; // 1
}
}
}
getJson('a');