Ответ 1
Во-первых, вы не имеете дело с объектом JSON. Вы имеете дело с объектом JavaScript. JSON - текстовая нотация, но если ваш примерный код работает ([0].amount
), вы уже десериализовали эту нотацию в графическом объекте JavaScript. (То, что вы цитировали, недействительно JSON вообще, в JSON ключи должны быть в двойных кавычках. ve quoted является литералом объекта JavaScript, который является надмножеством JSON.)
Здесь длина этого массива равна 2.
Нет, это 3.
Итак, мне нужно получить имя (например, количество или задание... всего четыре имени), а также подсчитать, сколько имен есть?
Если вы используете среду с полной поддержкой ECMAScript5, вы можете использовать Object.keys
(spec | MDN), чтобы получить перечисляемые ключи для одного из объектов в виде массива. Если нет (или если вы просто хотите перебрать их, а не получить их массив), вы можете использовать for..in
:
var entry;
var name;
entry = array[0];
for (name in entry) {
// here, `name` will be "amount", "job", "month", then "year" (in no defined order)
}
Полный рабочий пример:
(function() {
var array = [
{
amount: 12185,
job: "GAPA",
month: "JANUARY",
year: "2010"
},
{
amount: 147421,
job: "GAPA",
month: "MAY",
year: "2010"
},
{
amount: 2347,
job: "GAPA",
month: "AUGUST",
year: "2010"
}
];
var entry;
var name;
var count;
entry = array[0];
display("Keys for entry 0:");
count = 0;
for (name in entry) {
display(name);
++count;
}
display("Total enumerable keys: " + count);
// === Basic utility functions
function display(msg) {
var p = document.createElement('p');
p.innerHTML = msg;
document.body.appendChild(p);
}
})();