我有一个json文件
"user1": {
"body-parser": "^1.12.2",
"creditcard-generator": "*"
}
"user2": {
"body-parser": "^1.12.2",
"creditcard-generator": "*"
}
我正在尝试从特定位置读取此文件。到目前为止,我无法弄清楚如何做到这一点。说,我想只为user2选择用户凭据。我如何在JavaScript中实现这一目标?任何建议都会有很大的帮助。
答案 0 :(得分:1)
补充fljs提供的答案。
第一件事:你的json无效。您应该将它放在一个数组中,并使用逗号分隔对象。
var model = {
"user1": {
"body-parser": "^1.12.2",
"creditcard-generator": "*"
},
"user2": {
"body-parser": "^1.12.2",
"creditcard-generator": "*"
}
}
现在您想要阅读该信息:
> model["user2"]["creditcard-generator"]
< "*"
答案 1 :(得分:0)
您的json文件无效,
var text = {
"user1": {
"body-parser": "^1.12.2",
"creditcard-generator": "*"
},
"user2": {
"body-parser": "^1.12.2",
"creditcard-generator": "*"
}
}
你可以像这样解析
的console.log(text.user2);
答案 2 :(得分:0)
这很简单。 我们假设您将文件放入像这样的变量
var JSON={"user1": {
"body-parser": "^1.12.2",
"creditcard-generator": "*"
},
"user2": {
"body-parser": "^1.12.2",
"creditcard-generator": "*"
}}
在您的Javascript中,您使用点运算符来引用特定元素及其子元素。
说,我想仅为user2选择用户凭据。
在Javascript中,您只需编写JSON.user2
,依此类推。
尝试此操作的最快方法是将var JSON部件复制并粘贴到控制台中。并点击JSON.user2
答案 3 :(得分:0)
你的JSON-Object通常看起来像这样(注意开头和结尾的{}):
var json =
{
"user1": {
"body-parser": "^1.12.2",
"creditcard-generator": "*"
},
"user2": {
"body-parser": "^1.12.2",
"creditcard-generator": "*"
}
}
现在,您可以通过json.user2
获取user2的值。
还有其他方法可以获得要回答的数据和问题:您是否拥有JSON-Object或JSON-Array?你已经解析了吗?
看看这篇文章:http://www.mkyong.com/javascript/how-to-access-json-object-in-javascript/
问候,Nico
答案 4 :(得分:0)
如果你想要一个特定节点,只需像这样访问它:
jsonObj["user2"].body-parser;
如果你需要更多类型的东西,你可以使用这个功能:
var x = data.key1.children.key4;
var path = "data";
function search(path, obj, target) {
for (var k in obj) {
if (obj.hasOwnProperty(k))
if (obj[k] === target)
return path + "['" + k + "']"
else if (typeof obj[k] === "object") {
var result = search(path + "['" + k + "']", obj[k], target);
if (result)
return result;
}
}
return false;
}
//Then for evry node that you need you can call the search() function.
var path = search(path, data, x);
console.log(path); //data['key1']['children']['key4']
请注意,您首先必须将JSON修复为有效的结构。