Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   JSON основы вопросы (https://javascript.ru/forum/misc/8773-json-osnovy-voprosy.html)

mycoding 12.04.2010 16:15

JSON основы вопросы
 
Начал пробовать JSON, даже не знаю как узнать длину , т.е.
var city = 
{
	"Москва":
	{
		x:250,
		y:50,
		wayToCity:["Волгоград"]
	},
    "Волгоград":
	{
		x:300,
		y:600,
		wayToCity:["Москва"]
	}
};

Как вот можно узнать количество городов? length не работает.
Пробовал сделать так
//Добавление методов, в объект Object
Object.prototype.length = function()
{//Длина объекта, проверяет только строковые константы
//Надо разобраться как работать c JSON данными
var i=0;
var name;
for(name in this) { i++; }
return i;
};

Он мне возвращает 3, при выводе name печатает Москва, Волгоград, length.
Можно как то по нормальному?

Kolyaj 12.04.2010 16:20

Не пихайте length в Object.prototype.

А вообще, если вам нужно количество, то массив делайте, а не объект.

B@rmaley.e><e 12.04.2010 16:24

hasOwnProperty
//Добавление методов, в объект Object
Object.prototype.length = function(){
  var i=0, name;
  for(name in this) if(this.hasOwnProperty(name)) i++;
  return i;
};

e1f 12.04.2010 17:02

B@rmaley.e><e, не учите плохому.
mycoding, Вам Kolyaj все правильно сказал – с чего Вы взяли, что JSON – это обязательно объект? Используйте массив, и проблема решена.

B@rmaley.e><e 12.04.2010 17:09

Цитата:

Сообщение от e1f
B@rmaley.e><e, не учите плохому.

Что да как использовать — личное дело каждого. Я лишь показал способ решения проблемы, хотя лучше, конечно же, использовать массивы.

mycoding 12.04.2010 18:33

А зачем вообще JSON нужен, просто как то поработал с массивами, затрудняет понимание, а с объектом как то попроще, лично для меня(В плане понимания кода).

Kolyaj 12.04.2010 18:37

mycoding,
а зачем вы обычные объекты и массивы JSON-ом называете?

e1f 12.04.2010 18:38

mycoding, а какая разница? Оо. JSON - это формат передачи данных, не более того. Передали массив - ок, пользуемся. Передали объект - тоже норм, пользуемся. И нужен он именно для этого - для передачи данных

Octane 12.04.2010 19:16

В Chrome 5 уже можно так:
alert(Object.keys({a: 1, b: 2, c: 3}).length)
Это из ECMAScript 5 вроде.

mycoding 12.04.2010 19:59

И ещё вопрос, а можно ли как то с google map , получить координаты
городов?


Часовой пояс GMT +3, время: 16:56.