Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.04.2010, 16:15
Аватар для mycoding
NodeJS developer - ушел
Отправить личное сообщение для mycoding Посмотреть профиль Найти все сообщения от mycoding
 
Регистрация: 06.01.2010
Сообщений: 1,022

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.
Можно как то по нормальному?
Ответить с цитированием
  #2 (permalink)  
Старый 12.04.2010, 16:20
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

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

А вообще, если вам нужно количество, то массив делайте, а не объект.
Ответить с цитированием
  #3 (permalink)  
Старый 12.04.2010, 16:24
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

hasOwnProperty
//Добавление методов, в объект Object
Object.prototype.length = function(){
  var i=0, name;
  for(name in this) if(this.hasOwnProperty(name)) i++;
  return i;
};
Ответить с цитированием
  #4 (permalink)  
Старый 12.04.2010, 17:02
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

B@rmaley.e><e, не учите плохому.
mycoding, Вам Kolyaj все правильно сказал – с чего Вы взяли, что JSON – это обязательно объект? Используйте массив, и проблема решена.
Ответить с цитированием
  #5 (permalink)  
Старый 12.04.2010, 17:09
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Сообщение от e1f
B@rmaley.e><e, не учите плохому.
Что да как использовать — личное дело каждого. Я лишь показал способ решения проблемы, хотя лучше, конечно же, использовать массивы.
Ответить с цитированием
  #6 (permalink)  
Старый 12.04.2010, 18:33
Аватар для mycoding
NodeJS developer - ушел
Отправить личное сообщение для mycoding Посмотреть профиль Найти все сообщения от mycoding
 
Регистрация: 06.01.2010
Сообщений: 1,022

А зачем вообще JSON нужен, просто как то поработал с массивами, затрудняет понимание, а с объектом как то попроще, лично для меня(В плане понимания кода).
Ответить с цитированием
  #7 (permalink)  
Старый 12.04.2010, 18:37
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

mycoding,
а зачем вы обычные объекты и массивы JSON-ом называете?
Ответить с цитированием
  #8 (permalink)  
Старый 12.04.2010, 18:38
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

mycoding, а какая разница? Оо. JSON - это формат передачи данных, не более того. Передали массив - ок, пользуемся. Передали объект - тоже норм, пользуемся. И нужен он именно для этого - для передачи данных
Ответить с цитированием
  #9 (permalink)  
Старый 12.04.2010, 19:16
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

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

Последний раз редактировалось Octane, 12.04.2010 в 19:19.
Ответить с цитированием
  #10 (permalink)  
Старый 12.04.2010, 19:59
Аватар для mycoding
NodeJS developer - ушел
Отправить личное сообщение для mycoding Посмотреть профиль Найти все сообщения от mycoding
 
Регистрация: 06.01.2010
Сообщений: 1,022

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


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не работает JSON в JQuery 1.4.1 mcpro jQuery 7 22.03.2010 17:56
Jquery, Dynatree и JSON antirek jQuery 6 01.09.2009 15:00
Что выбрать XML или JSON для передачи Ajax - ом из PHP в JS Gozar Общие вопросы Javascript 20 16.08.2009 23:36
treeview и JSON PANKOFF jQuery 2 21.05.2009 14:46
Ajax - JSON - не распознает пришедший ответ Майский Кот jQuery 1 14.05.2009 00:40