Javascript JSON对密钥&;价值

Javascript JSON对密钥&;价值,javascript,key-value,Javascript,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)); 还是有更直接或更快的方法 我需要做的是让我能够分别调用键名和值。函数工作并返回键名和值,我只是想知道是否有更小、更快、更好的

这是从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'},
                        ]
                    }
                ]
        }
        ]
}

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

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

对于在一行代码中设置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]);
    }
}

我发现你的问题有点不清楚,但我怀疑你在寻找:

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

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

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

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);

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

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。这是一个JavaScript对象文本。此外,如果对象具有多个属性,并且可能会给出错误的结果,则函数将无法工作。您到底想做什么?根据JSON中的字符串,必须用双引号字符包围。撇号字符无效。它也不能包含运算符、函数或一系列其他内容。这是带有JS对象文字的JS(正如Felix所说)。与JSON无关。这不是JSON。这是一个JavaScript对象文本。此外,如果对象具有多个属性,并且可能会给出错误的结果,则函数将无法工作。您到底想做什么?根据JSON中的字符串,必须用双引号字符包围。撇号字符无效。它也不能包含运算符、函数或一系列其他内容。这是带有JS对象文字的JS(正如Felix所说)。与JSON无关。