Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   конверт xml to json (https://javascript.ru/forum/misc/55012-konvert-xml-json.html)

glot 10.04.2015 02:14

конверт xml to json
 
Вопрос следующий есть xml
<Products>
 <ProductAttribute Cid="5" Aid="A2">
  <ProductCat>Вода</ProductCat>
  <Value>минеральная</Value>
 </ProductAttribute>
 <ProductAttribute Cid="5" Aid="A4">
  <ProductCat>Вода</ProductCat>
  <Value>газированая</Value>
 </ProductAttribute>
 <ProductAttribute Cid="4" Aid="M122">
  <ProductCat>Рыба</ProductCat>
  <Value>Карась</Value>
 </ProductAttribute>
</Products>

где :
Cid- это id категории
Aid- это артикул товара
ProductCat-категория привязаная к Cid
Value-значение привязаное к Aid
мне нужно получить

{"Products":[
{"Cid":"5","ProductCat":"Вода","values":[{"AId":"A2","Value":"минеральная"},{"AId":"A4","Value":"газированая"}]},
{"Cid":"4","ProductCat":"Рыба","values":[{"AId":"M122","Value":"Карась"}]}
]}



XML я распарсил, в цикле получаю все значения и атрибуты товаров.
Как упаковать все в json?
Количество товаров и категории меняются

dauren 10.04.2015 08:41

Вам нужно использовать метод JSON.stringify(), https://learn.javascript.ru/json. Кстати есть готовые библиотеки https://code.google.com/p/x2js/.

tourniquet 10.04.2015 13:01

http://www.fyneworks.com/jquery/xml-to-json/ я вот этой библиотекой пользуюсь

glot 10.04.2015 13:32

Цитата:

Сообщение от dauren
Вам нужно использовать метод JSON.stringify()

это понятно, мне нужно как то объект создать, перед stringify, в этом затор
там может быть 5 продуктов вода, 3 печенья, 4 рыбы, а как создать именно такую структуру ка в моем json?

dauren 10.04.2015 17:02

http://jsfiddle.net/h95wdgmv/ не уверен что структура такая же, но что-то похожее

glot 10.04.2015 18:19

dauren, спасибо, но
Распарсить xml и превратить в то же самое, только в json, не есть решение, мне нужно иерархическую структуру изменить
-категория1
--- товар1
--- товар2
--- товар2
-категория2
--- товар1
-категория3
--- товар1
--- товар2

Нужно сгруппировать товары по атрибуту Cid в категории

jsnb 11.04.2015 14:47

http://jsfiddle.net/h95wdgmv/2/

glot 11.04.2015 20:44

jsnb, Спасибо вам огромное, ваш код это именно то, что доктор прописал:) , я уже и сам замонстрячил Френкеншкрипт, но ваш лаконичнее и короче в 2 раза.
Еще раз спасибо


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