繁体   English   中英

JS JSON对键和值

[英]JS JSON Pair Key & Value

这是从JS对象获取键和值的最佳方法:

function jkey(p){for(var k in p){return k;}}
function jval(p){for(var k in p){return p[k];}}

var myobj = {'Name':'Jack'};

alert(jkey(myobj)+' equals '+jval(myobj));

还是有更直接或更快速的方式?

我需要做的是能够分别调用键名和值。 函数起作用并返回键名和值,我只是想知道是否有更小的,更快的,更好的方法。

这是一个更好的示例,我想将key:value作为单独的变量访问,即{assistant:'XLH'},key = assistant,val ='XLH';

仅当我确定它是一对并且仅返回单个键和值时,才使用它。

formY={
    tab:[
        {
            tabID:'Main',
            fset:[
                    {
                        fsID:'Ec',
                        fields:[
                            {ec_id:'2011-03-002'},
                            {owner:'ECTEST'},
                            {assistant:'XLH'},
                            {ec_date:'14/03/2011'},
                            {ec_status:'Unreleased'},
                            {approval_person:'XYZ'},
                        ]
                    }
                ]
        }
        ]
}

最好避免循环两次对象。 您可以这样做:

function getKeyValue(obj) {
    for(var key in obj) {
        if(obj.hasOwnProperty(key)) {
            return {key: key, value: obj[key]};
        }
    }
}

并调用:

var kv = getKeyValue(obj);
alert(kv.key + ' equals ' + kv.value);

为了通过单行代码从JSON设置对象,我喜欢使用jQuery的parseJSON方法。 只需传入您的JSON字符串,它就会为您创建对象。 然后,您要做的就是使用obj.Property访问任何值。

var myObj = '{"Name":"Jack"}';
var person = $.parseJSON(myObj);
alert(person.Name);  // alert output is 'Jack'

我发现您的问题尚不清楚,但我怀疑您正在寻找:

var myobj = {'Name':'Jack'};

for(var k in myobj){
    if (myobj.hasOwnProperty(k)) {
        alert(k + ' equals ' + myobj[k]);
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM