如何使用javascript或jquery或angularjs获取密钥的json值?

时间:2016-03-24 09:10:57

标签: javascript jquery angularjs json

我有以下json:

var jsonobj = {
    "title" : "Testing",
    "settings" : {
    "mysettings" : false
    },
    "jsonlist": ["TestingList"],
    "testjsonvals": {
        "Test1": {
            "name": "name1",
            "description": "Test1 description"
            },
        "Test2": {
            "name": "name2",
            "description": "Test2 description"      
        },
        "Test3": {
            "name": "name3",
            "description": "Test3 description"            
        }
    }
}

如何使用javascript或jquery或angularjs在一条警报消息(例如:Test1 description, Test2 description, Test3 description应显示在我的警报消息上)中,仅从我给定的json获取/显示Test1,Test2,Test3的描述值?请帮助我,并提前致谢。

6 个答案:

答案 0 :(得分:2)

您应该迭代jsonobj["testjsonvals"](或jsonobj.testjsonvals)个对象键并连接description值,或将它们推入数组并join()

var jsonobj = {
    "title" : "Testing",
    "settings" : {
    "mysettings" : false
    },
    "jsonlist": ["TestingList"],
    "testjsonvals": {
        "Test1": {
            "name": "name1",
            "description": "Test1 description"
            },
        "Test2": {
            "name": "name2",
            "description": "Test2 description"      
        },
        "Test3": {
            "name": "name3",
            "description": "Test3 description"            
        }
    }
}


var msg = [];
$.each(jsonobj["testjsonvals"], function(key,v){ msg.push(v["description"]) });
alert(msg.join(", "));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

答案 1 :(得分:2)

你可以这样做

var tests=jsonobj['testjsonvals'];
alert(tests["Test1"]['description'])

答案 2 :(得分:1)

var message = jsonobj.testjsonvals.Test1.description + ', ' +
    jsonobj.testjsonvals.Test2.description + ', ' +
    jsonobj.testjsonvals.Test3.description;
alert(message);

答案 3 :(得分:1)

alert( jsonobj ['testjsonvals'['Test1'].description,  + 
       jsonobj ['testjsonvals'] ['Test2'].description,  + 
       jsonobj ['testjsonvals']['Test3'].description );

alert( jsonobj.testjsonvals.Test1.description, + 
       jsonobj.testjsonvals.Test2.description,  + 
       jsonobj.testjsonvals.Test3.description );

如果此代码帮助您,请告诉我

答案 4 :(得分:1)

这将遍历所有testjsonvals并将它们添加到我们与空间和警报连接在一起的数组

var arr = [];
for(i in jsonobj.testjsonvals)
{
    arr.push(jsonobj.testjsonvals[i].description);
}

alert(arr.join(" "));

答案 5 :(得分:1)

如果你遍历jsonobj.testjsonvals,你应该能够建立你的字符串以满足你的需要。这样的事情可以解决问题:

var jsonobj = {
    "title" : "Testing",
    "settings" : {
    "mysettings" : false
    },
    "jsonlist": ["TestingList"],
    "testjsonvals": {
        "Test1": {
            "name": "name1",
            "description": "Test1 description"
            },
        "Test2": {
            "name": "name2",
            "description": "Test2 description"      
        },
        "Test3": {
            "name": "name3",
            "description": "Test3 description"            
        }
    }
};

var tests = jsonobj.testjsonvals;
var msg = [];
for (var i in tests) {
  if (tests.hasOwnProperty(i)) {
    msg.push(tests[i].description);
  }
}
alert(msg.join(' '));