如何在特定位置读取JSON

时间:2016-06-16 06:46:52

标签: javascript json

我有一个json文件

"user1": {
    "body-parser": "^1.12.2",
    "creditcard-generator": "*"
}

"user2": {
"body-parser": "^1.12.2",
"creditcard-generator": "*"
}

我正在尝试从特定位置读取此文件。到目前为止,我无法弄清楚如何做到这一点。说,我想只为user2选择用户凭据。我如何在JavaScript中实现这一目标?任何建议都会有很大的帮助。

5 个答案:

答案 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修复为有效的结构。