|
Болтовня Разговоры на любые темы (думайте, о чем пишите) |
13.04.2016, 12:47
|
#1
|
Бывалый
Регистрация: 10.06.2011
Адрес: В горах
Сообщений: 849
Написано 331 полезных сообщений (для 853 пользователей)
|
помогите понять синтаксис
есть такой код:
a:1:{ i:0; a:13:{ s:2:\"id\"; s:2:\"79\"; s:4:\"name\"; s:5:\"А-14\"; s:3:\"url\"; s:15:\"rolly/sety/a-14\"; s:4:\"code\"; s:4:\"CN79\"; s:5:\"price\"; s:3:\"540\"; s:5:\"count\"; i:1; s:8:\"property\"; s:0:\"\"; s:6:\"coupon\"; N; s:8:\"discount\"; d:0; s:8:\"fulPrice\"; s:3:\"540\"; s:6:\"weight\"; s:3:\"580\"; s:12:\"currency_iso\"; s:3:\"RUR\"; s:8:\"discSyst\"; s:0:\"\"; } }
Это наверное json?
Из этого получается вот это:
не могу понять сей алгоритм
__________________
Абсолютли!
|
(Offline)
|
|
13.04.2016, 12:51
|
#2
|
Бывалый
Регистрация: 26.07.2009
Сообщений: 785
Написано 362 полезных сообщений (для 995 пользователей)
|
Ответ: помогите понять синтаксис
Это не JSON однозначно. А так ничего сложного: первый символ — префикс (a для массива, s для строки, i для целочисленного значения, d для хз чего (значения с точкой?)); дальше идут попарно количество элементов (для массива) или символов (для строки) плюс название параметра, и само значение на следующей строке.
В JSON это выглядело бы примерно так:
[{ "i":0, "a":[ "id":79, "name":"A-14", "url":"rolly/sety/a-14", "code":"CN79", "price":"540", "count":1, "property":"", "coupon":false, "discount":0, "fulPrice":"540", "weight":"580", "currency_iso":"RUR", "discSyst":"" ] }]
Ну и символы экранирования для кавычек, конечно.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
13.04.2016, 13:11
|
#3
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Ответ: помогите понять синтаксис
Сообщение от Andvrok
i для целочисленного значения, d для хз чего (значения с точкой?))
|
ну если i-int, то d-double
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
13.04.2016, 13:14
|
#4
|
Бывалый
Регистрация: 26.07.2009
Сообщений: 785
Написано 362 полезных сообщений (для 995 пользователей)
|
Ответ: помогите понять синтаксис
Сообщение от impersonalis
ну если i-int, то d-double
|
Тоже так подумал, но меня смутило использования дабла для процентной скидки.
|
(Offline)
|
|
13.04.2016, 13:45
|
#5
|
Бывалый
Регистрация: 10.06.2011
Адрес: В горах
Сообщений: 849
Написано 331 полезных сообщений (для 853 пользователей)
|
Ответ: помогите понять синтаксис
Andvrok, спасибо!
вот мне интересно зачем было изобретать такой велосипед, нельзя было взять json?
__________________
Абсолютли!
|
(Offline)
|
|
13.04.2016, 13:55
|
#6
|
Бывалый
Регистрация: 10.06.2011
Адрес: В горах
Сообщений: 849
Написано 331 полезных сообщений (для 853 пользователей)
|
Ответ: помогите понять синтаксис
еще вопрос
s:68:\"запеченный острый с копченым лососем\";
почему 68?
------------------upd -----------------
а, все понял. кириллица считается за 2, а пробелы по одному
__________________
Абсолютли!
|
(Offline)
|
|
13.04.2016, 14:37
|
#7
|
Элита
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,067
Написано 1,185 полезных сообщений (для 2,828 пользователей)
|
Ответ: помогите понять синтаксис
Сообщение от ant0N
Andvrok, спасибо!
вот мне интересно зачем было изобретать такой велосипед, нельзя было взять json?
|
Ленивый разраб, который не освоил json (хоть это и невозможно), и которому лень парсить его ручками? Я когда то примерно такую же шнягу писал, что бы проще было парсить строки, не стараясь искать открывающий и закрывающий строку символ (а то вдруг посреди строки встретится, это же ещё морока). Смысл разрабатывать такое был когда-то, но уже давным давно есть JSON.
__________________
Main PC:
Intel Core i5 4260U 1.44 GHz + LPDDR3 1x4096 1600 MHz + Intel HD Graphics 5000.
Asus Ёжик T101-MT:
Intel Atom N-570 1.66 Ghz + DDR2 2x1024 800 Mhz + Intel GMA 3150 128 Mb DDR2
Скачать Doom 2D: Remake v0.3.8a
|
(Offline)
|
|
13.04.2016, 15:07
|
#8
|
Бывалый
Регистрация: 26.07.2009
Сообщений: 785
Написано 362 полезных сообщений (для 995 пользователей)
|
Ответ: помогите понять синтаксис
Сообщение от St_AnGer
парсить его ручками
|
Ну это вообще пушка, json ручками парсить.
|
(Offline)
|
|
13.04.2016, 15:15
|
#9
|
Элита
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,067
Написано 1,185 полезных сообщений (для 2,828 пользователей)
|
Ответ: помогите понять синтаксис
Сообщение от Andvrok
Ну это вообще пушка, json ручками парсить.
|
Не поверишь, многие не знаю что за хрень такая JSON и начинают её читать (парсить) именно ручками. Особенно если это начинающий программер или вообще - начинающий сайтописец (обычно у таких и вылазиют вот такие {s:5:"ololo"}, да блин, пока я здесь на форуме не спросил когда-то давно и не получил ответ от Моки о пользе JSON'а - сам изобретал свои форматы передачи данных). Давеча чуть не начал писать свой парсер под C# для юньки, потому что не мог найти нормальный в итоге какой-то нашёл, чем добился резкой экономии времени.
__________________
Main PC:
Intel Core i5 4260U 1.44 GHz + LPDDR3 1x4096 1600 MHz + Intel HD Graphics 5000.
Asus Ёжик T101-MT:
Intel Atom N-570 1.66 Ghz + DDR2 2x1024 800 Mhz + Intel GMA 3150 128 Mb DDR2
Скачать Doom 2D: Remake v0.3.8a
|
(Offline)
|
|
13.04.2016, 16:20
|
#10
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: помогите понять синтаксис
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо pax за это полезное сообщение:
|
|
13.04.2016, 16:34
|
#11
|
Бывалый
Регистрация: 26.07.2009
Сообщений: 785
Написано 362 полезных сообщений (для 995 пользователей)
|
Ответ: помогите понять синтаксис
Так вот оно что. Пхпхшный говносериалайзер такое делает.
|
(Offline)
|
|
13.04.2016, 16:35
|
#12
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: помогите понять синтаксис
Сообщение от Andvrok
Так вот оно что. Пхпхшный говносериалайзер такое делает.
|
Ну почему говно? Php вообще как парсер всегда быстро работал, даже переменные со знака $ начинаются для ускорения парсинга. А тут такое же упрощение для ускорения чтения. Единственное - использовать это на клиенте странный выбор. А в остальном две функци для сохранения и чтения своих классов/массивов/переменных/и т.д.
|
(Offline)
|
|
13.04.2016, 16:40
|
#13
|
Бывалый
Регистрация: 26.07.2009
Сообщений: 785
Написано 362 полезных сообщений (для 995 пользователей)
|
Ответ: помогите понять синтаксис
Сообщение от pax
Ну почему говно? Php вообще как парсер всегда быстро работал, даже переменные со знака $ начинаются для ускорения парсинга. А тут такое же упрощение для ускорения чтения. Единственное - использовать это на клиенте странный выбор. А в остальном две функци для сохранения и чтения своих классов/массивов/переменных/и т.д.
|
В том же пхп есть json_encode и json_decode, при этом это будет удобоваримый, читаемый, совместимый со всем формат.
|
(Offline)
|
|
13.04.2016, 16:46
|
#14
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: помогите понять синтаксис
Сообщение от Andvrok
В том же пхп есть json_encode и json_decode, при этом это будет удобоваримый читаемый совместимый со всем формат.
|
Ну ты не путай назначения этих форматов. Все таки они выполняют разные задачи. Один предназначен для быстрой сериализации/десериализации объектов своего языка, другой общедоступный, который прочитать не так быстро, чем приведенный формат.
|
(Offline)
|
|
13.04.2016, 16:51
|
#15
|
[object Object]
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,356
Написано 2,472 полезных сообщений (для 6,854 пользователей)
|
Ответ: помогите понять синтаксис
Сериализуйте/десериализуйте данных на 1мб
Сначала через serialize, unserialize
Потом через json_encode, json_decode
Результатам не удивляемся.
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 01:40.
|