// некий объект
var obj = {
sid : "32423j4k2j4k2424d34",
img : "/sdfsdf.png",
params : [{id:32, name: 'sdfsdf'}.....{...}...]
};
и через AJAX я получаю JSON данные, допустим я его парсю, т.е строку превращаю в цельный объект
var n = jQuery.parseJSON(msg);
теперь мне надо впиндерить данный объект в существующий obj. НЕ прописывая вручную в obj - n : n ....
почитал гугл и сопутствующие сайты, чет не нашел подобного.
Есть еще пару вариантов получения объекта, например на PHP я рисую структуру будущего объекта, или 2х или 3х, т.е
$obj = "var b = {.......}";
$obj .= "var m = {.......}";
и тупо выдаю строку, а в JS я уже запускаю EVAl()...
И вот она задача, есть какие нибудь методы добавления объектов в объекты? :) Или куды копать?
Спустя 35 минут, 8 секунд (9.08.2011 - 16:59) Michael написал(а):
а почему не используешь в php функцию json_encode, а в jquery - getJSON ?
Насчет "впиндерить", не понял о чем речь.
Насчет "впиндерить", не понял о чем речь.
Спустя 16 минут, 28 секунд (9.08.2011 - 17:16) sharki написал(а):
Michael
Я так и делаю в общем то, я про json_encode. getJSON по идее == parseJSON() :) но не важно.
Я так и делаю в общем то, я про json_encode. getJSON по идее == parseJSON() :) но не важно.
Цитата |
Насчет "впиндерить", не понял о чем речь. |
Смотри, есть у нас объект, уже созданный на страничке
var obj = {
sid : "32423j4k2j4k2424d34",
img : "/sdfsdf.png",
params : [{id:32, name: 'sdfsdf'}.....{...}...]
};
Потом всякими манипуляциями, я AJAX'ом получаю
{
id : 1,
value : 1,
text : "700*400 прямоугольник",
indexLine : 2
}
В итоге у меня есть объект, далее мне надо добиться следующего вида
var obj = {
sid : "32423j4k2j4k2424d34",
img : "/sdfsdf.png",
params : [{id:32, name: 'sdfsdf'}.....{...}...],
n: { //Как видим у нас появился новый объект "абстрактно"
id : 1,
value : 1,
text : "700*400 прямоугольник",
indexLine : 2
}
};
Можно прописать вручную т.е
obj.n = {
id : 1,
value : 1,
text : "700*400 прямоугольник",
indexLine : 2
}
Теперь у нас есть нужный объект в объекте. Но мы прописали вручную!
Вот например в PHP есть функция (работая с массивом), который сливает 2 массива в один. В итоге все на одном уровне,
и не надо прописывать
(далее JS)
В этом случае, мы новый объект "оболочку", в которой находятся много других объектов засовываем в существующий объект obj, и получается вот такая длиннющая строка.
obj.n[0].blabla.name
Хотя вот так удобнее
var obj = {
sid : "32423j4k2j4k2424d34",
img : "/sdfsdf.png",
params : [{id:32, name: 'sdfsdf'}.....{...}...],
n: { //Как видим у нас появился новый объект "абстрактно"
id : 1,
value : 1,
text : "700*400 прямоугольник",
indexLine : 2
}
};
Так то много способов автоматизировать всё это, но в итоге будем путаться в этих обращениях массива->объект и т.п..., а не просто obj.и_новенький(е)_полученный(е)_объек(ы)
Спустя 14 минут, 15 секунд (9.08.2011 - 17:30) Michael написал(а):
, как у тебя мысли скачут. То объекты, то массивы под конец.
Цитата |
Можно прописать вручную т.е |
obj.n = data; // data - тот объект, что получили json-ом
Массивы в js через квадратные скобки определяются - []
Спустя 9 минут, 10 секунд (9.08.2011 - 17:39) sharki написал(а):
Конец раб. дня, вот и скачут :D
В общем нашел способ :)
например я получаю нужный мне массив с объектами JSON типа, потом я циклом по нему прохожусь, при каждой итерации я получаю нужные мне данные, например имя.
исходный массив
И вуаля :)
Щас грязный код, просто показал смысл, потом надо допиливать
В общем нашел способ :)
например я получаю нужный мне массив с объектами JSON типа, потом я циклом по нему прохожусь, при каждой итерации я получаю нужные мне данные, например имя.
исходный массив
o = [{name: 'test', src: {и все св-ва и т.д НОВОГО ОБЪЕКТА} },{.......по аналогии.......}]
for (var i = 0; i < o.length; i++) {
obj[o[i].name] = o[i].src;
}
И вуаля :)
Щас грязный код, просто показал смысл, потом надо допиливать
Спустя 15 часов, 37 минут, 50 секунд (10.08.2011 - 09:17) sharki написал(а):
Может кому пригодится :)
Вообщем все так как я и хотел, вот результат дампа итогового объекта
Реализация
JSON'ом тянем нужный массив
Вообщем все так как я и хотел, вот результат дампа итогового объекта
object {
id: 1
name: книга
sid: 32423j4k2j4k2424d34
img: /sdfsdf.png
price: 3453
count: 3
currency: руб
steps: object {
this_step: 2
title: object {
0: Выбирите нужные параметры книги
1: остальное 2
2: остальное 3
}
}
test: object {
id: 234
bla: fsf
}
test2: object {
id: 214
bla: fsf
}
test3: object {
id: 224
bla: fsf
}
}
Реализация
// некий объект
var obj = {
id : 1, // id объекта
name : "книга", // имя
sid : "32423j4k2j4k2424d34",
img : "/sdfsdf.png",
params : params,
price : 3453,
count : 3,
currency : 'руб',
steps : {
this_step: 2, title : ['Выбирите нужные параметры книги','остальное 2','остальное 3']
},
pages : pages
};
JSON'ом тянем нужный массив
bl = [{name: 'test', src: {id: 234, bla:'fsf'}},{name: 'test2', src: {id: 214, bla:'fsf'}},{name: 'test3', src: {id: 224, bla:'fsf'}}];
for (var i = 0; i < bl.length; i++) { // и добавляем
obj[bl[i].name] = bl[i].src;
}