2013-06-21 152 views
0

这是我的json对象,我希望在没有像[0],[1]这样的数组顺序的情况下获得警报。从json对象中获取数值而不计数数组

var jsononj = { 
    "objnew" : 
    [{testarry: "thi is my demo text" }, 
{testarry2: "thi is my demo text2" } 
] }; 

    } 

var newtest = jsononj.objnew[0].testarry; 
    alert(newtest); 

我想警告没有[0]。怎么我实现这个

+2

什么困扰你用'[0]'?你有一个包含2个元素的数组,你想显示第一个元素的一些信息。你如何期待在没有告诉系统你想要* first *元素的情况下发生?但是,Javascript并不足够聪明,无法读懂你的思想。 –

+0

这些订单可以随时重新排列,但“钥匙”将保持不变,原因 – supersaiyan

+0

你在哪里看到*钥匙*?在你显示的例子中,我只能看到一条消息。你会发现,当你没有告诉我们所有的事情,并显示你真实的代码和真正的问题时,会发生这种情况。 –

回答

1

我认为这是你在找什么:

var i; 
for (i = 0; i < jsonobj.objnew.length; i++) { 
    if (jsonobj.objnew[i].testarry) { 
     alert(jsonobj.objnew[i].testarry); 
    } 
} 
+1

var i是需要的吗?我不明白这一点。你在哪里使用该指数? – Edorka

+0

糟糕,犯了一个错误。忘了'[我]'。 – elslooo

0

var firstOne = jsononj.objnew[0];

,但如果你根本不喜欢[0]通过你的线条,扩展Array原型

Array.prototype.first = function() { 
    return this[0]; 
}; 
var newtest = jsononj.objnew.first().testarry; 
alert(newtest); 

更多信息以First element in array - jQuery

+2

你在作弊,你仍然使用'[0]'。 –

+0

我又增加了一个选项 – Edorka

+0

@DarinDimitrov lol – andlrc

0

这是愚蠢的,但我删除了[0]

var jsononj = { 
    "objnew" : [ 
     {testarry: "thi is my demo text" }, 
     {testarry2: "thi is my demo text2" } 
    ] 
}; 

var a = jsononj.objnew.shift(); 
alert(a.testarry); 
jsononj.objnew.unshift(a); 
+0

哈哈哈我需要一些更好的方法:-) – supersaiyan

0

这不是JSON,这是一个Javascript对象。 JSON是用于表示数据的文本格式。

如果你想通过数组中的对象找对象具有特定属性,循环,检查它:

var newtest = null; 
for (var i = 0; i < jsononj.objnew.length; i++) { 
    var obj = jsononj.objnew[i]; 
    if (obj.hasOwnProperty('testarry') { 
    newtest = obj.testarry; 
    break; 
    } 
} 
if (newtest != null) { 
    // found one 
}