Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Веб-программирование > JavaScript / HTML

JavaScript / HTML Создание динамической разметки страниц

Ответ
 
Опции темы
Старый 20.06.2012, 10:25   #1
NetBuilding
ПроЭктировщик
 
Аватар для NetBuilding
 
Регистрация: 07.06.2010
Сообщений: 105
Написано 5 полезных сообщений
(для 13 пользователей)
Смущение JSON

Ребята подскажите как в самом javascript-е динамически создать JSON и динамически же его изменять. добавлять еще объекты, убивать объекты и т.д. а точнее создать его из других JSON объектов
__________________

Юзаю Ubuntu, Юзаю Mac
(Offline)
 
Ответить с цитированием
Старый 20.06.2012, 14:03   #2
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: JSON

var obj = { id:10title:"Hello" };
obj.lat 43.00203232;
console.log(JSON.stringify(obj));

var 
beta JSON.parse(JSON.stringify(obj));
beta.id 11;
console.log(JSON.stringify(beta)); 
С клонированием я так, на вскидку, есть лучше методы с сохранением ссылок и т.п.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
NetBuilding (20.06.2012)
Старый 22.06.2012, 11:42   #3
NetBuilding
ПроЭктировщик
 
Аватар для NetBuilding
 
Регистрация: 07.06.2010
Сообщений: 105
Написано 5 полезных сообщений
(для 13 пользователей)
Ответ: JSON

А кто подскажет как получить массив имен объектов из к примеру такого объекта:

>Object
>31: Object
>32: Object
>33: Object

obj={
"31": "тыдым",
"32": "тырым",
"33": "пыбым",
}
дабы потом к ним обращаться. т.к. в своем коде мы не знаем как могут называться эти объекты
__________________

Юзаю Ubuntu, Юзаю Mac
(Offline)
 
Ответить с цитированием
Старый 22.06.2012, 12:29   #4
NetBuilding
ПроЭктировщик
 
Аватар для NetBuilding
 
Регистрация: 07.06.2010
Сообщений: 105
Написано 5 полезных сообщений
(для 13 пользователей)
Счастье Джейсон

понял
var b=[],i=0;
for(obj2 in obj)
{b[i]=obj2; i++ }
__________________

Юзаю Ubuntu, Юзаю Mac
(Offline)
 
Ответить с цитированием
Старый 22.06.2012, 13:50   #5
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: JSON

Зачем тебе массив?
var obj = {
    
"31""тыдым"
  
"32""тырым"
  
"33""пыбым"

Вот это выше, не массив, а объект с key<>value записями.

Тебе нужно перевезти это в массив, или просто пробежаться по всем парам?
Просто занести в массив - я бы не советовал, т.к. key часто имеет важное значение, например я часто его использую в виде ID, т.к. он уникальный. Получается хэшь таблица с индексированным ID доступом к объектам.

Чтобы пробежаться по всем парам:
for(var i in obj) {
  
console.log('key: ' ', value: ' obj[i]);

Но если тебе не нужен key вообще, почему тогда не создать сразу массив?
var obj =  [
    
"тыдым"
  
"тырым"
  
"пыбым"

Пробегать по ним точно также, где i будет индексом в массиве.
(Offline)
 
Ответить с цитированием
Старый 16.07.2012, 11:36   #6
NetBuilding
ПроЭктировщик
 
Аватар для NetBuilding
 
Регистрация: 07.06.2010
Сообщений: 105
Написано 5 полезных сообщений
(для 13 пользователей)
Джейсон

Ребята, уже два часа утюжу гугл в поисках ответа на вопрос: ЧТО НЕЛЬЗЯ ПИСАТЬ В СТРОКЕ JSON.
Текущая проблема такая в json строке у меня : (двоеточие)
и как решить эту проблему если оно означает не что иное как время (hh:mm)
подскажите как это решить?
__________________

Юзаю Ubuntu, Юзаю Mac
(Offline)
 
Ответить с цитированием
Старый 16.07.2012, 12:37   #7
jimon
 
Сообщений: n/a
Ответ: JSON

NetBuilding
видимо парсер json-а очень кривой, ибо должен парсить



попробуй вместо ':' вставить '\u003a'
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
NetBuilding (13.08.2012)
Старый 13.08.2012, 09:27   #8
NetBuilding
ПроЭктировщик
 
Аватар для NetBuilding
 
Регистрация: 07.06.2010
Сообщений: 105
Написано 5 полезных сообщений
(для 13 пользователей)
Ответ: JSON

Вот такой вопрос.
Есть два обьекта.
var = [{"id":0},{"id":1},{"id":2},{"id":3},{"id":4},{"id":5},{"id":6},{"id":8},{"id":10},{"id":13},{"id":14},{"id":15},{"id":18},{"id":27},{"id":30},{"id":31},{"id":32},{"id":33},{"id":34},{"id":35},{"id":37},{"id":101},{"id":102},{"id":103},{"id":104},{"id":105},{"id":106},{"id":107},{"id":108},{"id":109},{"id":110},{"id":111},{"id":112},{"id":113},{"id":114},{"id":115},{"id":116},{"id":117},{"id":119},{"id":120},{"id":121},{"id":122},{"id":123},{"id":124},{"id":125},{"id":126},{"id":127},{"id":128},{"id":129},{"id":130}]
var 
= [{"id":0},{"id":1},{"id":2},{"id":3},{"id":4},{"id":5},{"id":6},{"id":8},{"id":10},{"id":13},{"id":14},{"id":15},{"id":18},{"id":27},{"id":30},{"id":31},{"id":32},{"id":33},{"id":34},{"id":35},{"id":37},{"id":201},{"id":202},{"id":203},{"id":204},{"id":205},{"id":206},{"id":207},{"id":208},{"id":209},{"id":213},{"id":214},{"id":215},{"id":216},{"id":217},{"id":218},{"id":219},{"id":220},{"id":221},{"id":222},{"id":223},{"id":226},{"id":227},{"id":228},{"id":230},{"id":232},{"id":233},{"id":234},{"id":235},{"id":236},{"id":237},{"id":238},{"id":239},{"id":242}] 
как максимально быстро подсчитать количество уникальных id. у обоих массив-обьектов вместе.
т.е. типа (a+b).lenght
или $.extend(a,b).lenght
че-нибудь такое
не прогонять же все в цикле.
__________________

Юзаю Ubuntu, Юзаю Mac
(Offline)
 
Ответить с цитированием
Старый 13.08.2012, 14:38   #9
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: JSON

В данном случае у тебя два простых массива с объектами внутри.
Учитывай что ты делаешь НЕ хэшь таблицу.
Чтобы подсчитать общее колличество, просто пиши:
a.length b.length 
http://jsfiddle.net/KyQYd/

А если будешь использовать хэшь таблицу, то будет иначе.
В случае с хэшь таблицей, можешь использовать ES5 совместимую фичу:
Object.keys(a).length Object.keys(b).length 
Учитывай что это будет работать только в IE9+, FF 4+, Safari 5+, Chrom, Node.js
Если нужна более широкая поддержка, то делай циклами подсчёт.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
NetBuilding (14.08.2012)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 17:35.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com