Javascript 如何在特定位置读取JSON
我有一个json文件Javascript 如何在特定位置读取JSON,javascript,json,Javascript,Json,我有一个json文件 "user1": { "body-parser": "^1.12.2", "creditcard-generator": "*" } "user2": { "body-parser": "^1.12.2", "creditcard-generator": "*" } 我正在尝试从特定位置读取此文件。到目前为止,我还不知道如何做到这一点。比如说,我只想为user2选择用户凭据。如何在javascript中实现这一点?任何建议都会有很大帮助。您的json文件
"user1": {
"body-parser": "^1.12.2",
"creditcard-generator": "*"
}
"user2": {
"body-parser": "^1.12.2",
"creditcard-generator": "*"
}
我正在尝试从特定位置读取此文件。到目前为止,我还不知道如何做到这一点。比如说,我只想为user2选择用户凭据。如何在javascript中实现这一点?任何建议都会有很大帮助。您的json文件无效
var text = {
"user1": {
"body-parser": "^1.12.2",
"creditcard-generator": "*"
},
"user2": {
"body-parser": "^1.12.2",
"creditcard-generator": "*"
}
}
你可以这样解析
var JSON={"user1": {
"body-parser": "^1.12.2",
"creditcard-generator": "*"
},
"user2": {
"body-parser": "^1.12.2",
"creditcard-generator": "*"
}}
console.log(text.user2) 补充fljs提供的答案
第一件事:您的json格式无效。您应该将其放入数组中,并使用逗号分隔对象
var model = {
"user1": {
"body-parser": "^1.12.2",
"creditcard-generator": "*"
},
"user2": {
"body-parser": "^1.12.2",
"creditcard-generator": "*"
}
}
现在您要阅读该信息:
> model["user2"]["creditcard-generator"]
< "*"
>型号[“用户2”][“信用卡生成器”]
< "*"
这很简单。
假设您将文件放入这样一个变量中
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
您的JSON对象通常如下所示(注意开头和结尾的{}):
现在您可以通过json.user2
获得user2的值
还有其他方法可以获取数据并回答问题:您有JSON对象还是JSON数组?你已经分析过了吗
看看这篇文章:
您好,Nico如果您想要一个spesific节点,请按如下方式访问它:
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以使其成为有效的结构。好的,那么现在我该如何阅读它,比如获取user2的主体解析器和信用卡生成器值?我尝试了var fs=require('fs');var content=fs.readFileSync('./actions/writeTo.json');var jsonContent=JSON.parse(内容);log(json.user1);它不起作用。这是来自json文件失败的错误:意外令牌v语法错误:意外令牌vMy json文件是:var json={“user1”:{“body parser”:“^1.12.2”,“creditcard generator”:“}”,user2:{“body parser”:“^1.12.2”,“creditcard generator”:“}}您在控制台中写错了。编写console.log(jsonContent.user1)而不是console.log(json.user1)json.parse()用于将包含json符号的字符串转换为Javascript对象。您的代码(通过调用.toString())将对象转换为字符串,以便尝试将其解析为JSON文本。默认的.toString()返回“[object]”,它不是有效的JSON;因此出现了错误。它不是一个JSON文件。2.显示您尝试了什么以及在什么环境(节点、浏览器等)中尝试了什么。明白了,我对json非常陌生。你能告诉我如何访问这个文件吗。所以就像在javascript中一样,我通常使用var fs=require('fs');var文件='./actions/writeTo.json';然后写入jsonfile.writeFile(file,obj,function(error){…}类似地,我如何在这里获取json文件?@BishwaroopChakraborty:如果您的服务器上通常有一个json文件,那么您可以通过http请求获取它,也可以通过JQuery:
$.get(“/Actions/writeTo.json”,function(data){})
如果你有需要解析的数据,那么你就有了可以访问的json/js对象。