Javascript 如何以自定义方式读取JSON文件
我有一个JSON对象,如下所示Javascript 如何以自定义方式读取JSON文件,javascript,json,Javascript,Json,我有一个JSON对象,如下所示 { "db": { "name": "db", "connector": "memory" }, "MySql": { "host": "localhost", "port": 3306, "database": "users", "username": "root", "password": "", "name": "MySql", "connector": "mysql" }, "postgreDS":
{
"db": {
"name": "db",
"connector": "memory"
},
"MySql": {
"host": "localhost",
"port": 3306,
"database": "users",
"username": "root",
"password": "",
"name": "MySql",
"connector": "mysql"
},
"postgreDS": {
"host": "localhost",
"port": 1234,
"database": "abc",
"username": "postgres",
"password": "abc",
"name": "postgreDS",
"connector": "postgresql"
}
我需要这个对象的以下输出
{"db", "MySql", "postgreDS"}
我应该如何从JavaScript中的整个JSON对象中提取上述信息。
以及如何读取子键和这些值。尝试
javascript
$(function(){
var output = {};
var items = {
"db": {
"name": "db",
"connector": "memory"
},
"MySql": {
"host": "localhost",
"port": 3306,
"database": "users",
"username": "root",
"password": "",
"name": "MySql",
"connector": "mysql"
},
"postgreDS": {
"host": "localhost",
"port": 1234,
"database": "abc",
"username": "postgres",
"password": "abc",
"name": "postgreDS",
"connector": "postgresql"
}};
for(var propertyName in items) {
output.push(propertyName); // output will have the required output
}
console.log(output);
});
类似这样的内容(其中,obj
是您的JSON对象):
如果您只是想获取嵌套对象的键,请使用
Object.keys
:
var keys = Object.keys(obj); // [ "db", "MySql", "postgreDS" ]
如果您希望根据指定的键从嵌套对象中获取值,这里有一个通用函数,它将返回一个值数组:
function getValueFromKey(obj, key) {
return Object.keys(obj).map(function (el) {
return obj[el][key];
});
}
getValueFromKey(obj, 'name'); // [ "db", "MySql", "postgreDS" ]
getValueFromKey(obj, 'connector'); // [ "memory", "mysql", "postgresql" ]
迭代它,获取所有三个字典,从所有三个字典中提取key
name
的值。除非你在寻找现成的密码,否则我可能不知道钥匙的副本。那又怎样?您可以使用for in
循环获取所有密钥。只要您的目标是从所有子目录中获取键name
的所有值。或者您可以使用simplevar keys=Object.keys(字典)
来获取所有keys@RizwanHaider有一件事要说清楚!是否要显示顶级键db、mysql和postGreDS?或者,是否要在所有三个键中显示键name
的值?
function getValueFromKey(obj, key) {
return Object.keys(obj).map(function (el) {
return obj[el][key];
});
}
getValueFromKey(obj, 'name'); // [ "db", "MySql", "postgreDS" ]
getValueFromKey(obj, 'connector'); // [ "memory", "mysql", "postgresql" ]