данные должны быть в внутри скобок {"age":"7","skill":"3","level":"14","time":"40","year":"27","aaa":"2","bbb":"47"}
Множественный JSON
-
Всем добрый день, подскажите пожалуйста по массиву JSON.
Несколько тысяч JSON отдается на одной странице, возможно ли как-то сделать проще, чем парсить это все в список, а потом перебором собирать значения?
Речь о прокси. До этого не сталкивался с таким, сильно не пинайте )))
Забирать по одному возможности нет, в теории, можно забрать все это со страницы регуляркой, насколько я понимаю, но видится мне, так как цифр левых много - будет достаточно гемморно.
-
@lcatlas said in Множественный JSON:
Всем добрый день, подскажите пожалуйста по массиву JSON.
Несколько тысяч JSON отдается на одной странице, возможно ли как-то сделать проще, чем парсить это все в список, а потом перебором собирать значения?
Речь о прокси. До этого не сталкивался с таким, сильно не пинайте )))
Забирать по одному возможности нет, в теории, можно забрать все это со страницы регуляркой, насколько я понимаю, но видится мне, так как цифр левых много - будет достаточно гемморно.
Если вы получаете прокси с какого то сервиса, то обычно на этих сервисах можно изменить вид получения, что описывается в API сервиса.
С помощью json очень удобно, быстро и легко доставать любые значения. Главное правильно написать код.
Вам подойдет этот модуль - https://community.bablosoft.com/topic/6192/модуль-парсинга-json -
Это не сервис, это сайт с кучей проксей выложенных в JSON формате, с парсера. Никаких вариантов получения/апи и тд - нет.
Спасибо большое за ответ, хотел просто поинтересоваться, нет ли более быстрого варианта, нежели парсить по одному значению через таблицу.
Дело в том, что у меня массив данных, там 10к одинаковых JSON по формату, JSON модуль читает JSON построчно, насколько я понял и потестировал.
Мне бы хотелось обработать файл в 10 тысяч одинаковых JSON значений скопом.
Ибо если у меня уже есть пробел между данными (а он там есть) - чтение прекращается, возможно стоит убрать пробел между данными, хммм, вопрос лишь как между } { убрать это пробел )
Но что-то мне подсказывает, что дело не в пробеле ) Хотя может и в нем, и я туплю.
-
@lcatlas said in Множественный JSON:
Это не сервис, это сайт с кучей проксей выложенных в JSON формате, с парсера. Никаких вариантов получения/апи и тд - нет.
Спасибо большое за ответ, хотел просто поинтересоваться, нет ли более быстрого варианта, нежели парсить по одному значению через таблицу.
Дело в том, что у меня массив данных, там 10к одинаковых JSON по формату, JSON модуль читает JSON построчно, насколько я понял и потестировал.
Мне бы хотелось обработать файл в 10 тысяч одинаковых JSON значений скопом.
Ибо если у меня уже есть пробел между данными (а он там есть) - чтение прекращается, возможно стоит убрать пробел между данными, хммм, вопрос лишь как между } { убрать это пробел )
Недавно это делал. Через список и базу там за 1 сек обрабатытваеться.
-
Так я и так получаю нужные значения в список и работаю с ними ) Просто это занимает минут 7.
Нене, все работает, уважаемый Uraabk, я может неверно выразился. Меня вопрос оптимизации процесса интересует. Тут подсказали с базой, сейчас буду пробовать, с базами до этого не работал.
-
Тогда я правда туплю. У меня есть список, в списке куча одинаковых строк с одинаковыми значениями, меняется только несколько цифр. Пытаюсь скормить этот список - Syntax Error, чтобы я не пробовал. И через (0), и просто так. Как только значение одно, а не 10 сразу, он все отлично обрабатывает.
Да в том то и дело, что прежде чем создать топик я поднял 30 топиков изначально.
-
@lcatlas said in Множественный JSON:
Тогда я правда туплю. У меня есть список, в списке куча одинаковых строк с одинаковыми значениями, меняется только несколько цифр. Пытаюсь скормить этот список - Syntax Error, чтобы я не пробовал. И через (0), и просто так. Как только значение одно, а не 10 сразу, он все отлично обрабатывает.
Да в том то и дело, что прежде чем создать топик я поднял 30 топиков изначально.
Скиньте тестовый скрипт или приложите файл со строками. Так будет быстрее
-
Пример:
{"port": 8017, "host": "8.8.8.8", "from": "slash", "export_man": ["8.8.8.8", "8.8.8.8", "8.8.8.8"], "ty": "http", "resp": 4.86, "us": "en"} {"port": 8018, "host": "9.9.9.9", "from": "slash", "export_man": ["9.9.9.9", "9.9.9.9", "9.9.9.9"], "ty": "http", "resp": 5.76, "us": "en"}И таких 10к строк.
Использую:
var json = JSON.parse([[FOREACH_DATA]]) VAR_HOST = json.host VAR_PORT = json.portТак как ругается на синтакс. Но, скорее всего это мне просто знаний не хватает.
-
@lcatlas said in Множественный JSON:
Пример:
{"port": 8017, "host": "8.8.8.8", "from": "slash", "export_man": ["8.8.8.8", "8.8.8.8", "8.8.8.8"], "ty": "http", "resp": 4.86, "us": "en"} {"port": 8018, "host": "9.9.9.9", "from": "slash", "export_man": ["9.9.9.9", "9.9.9.9", "9.9.9.9"], "ty": "http", "resp": 5.76, "us": "en"}И таких 10к строк.
Использую:
var json = JSON.parse([[FOREACH_DATA]]) VAR_HOST = json.host VAR_PORT = json.portТак как ругается на синтакс. Но, скорее всего это мне просто знаний не хватает.
Судя по названию переменной [[FOREACH_DATA]] вы перебираете весь список через действие foreach BAS. Перебирать большой массив через действия BAS выходит медленнее чем просто на js.
Я просил тестовый скрипт, чтобы понять, где и в каком виде у вас данные.
-
@lcatlas если я все верно понял, то примерно так получается в выполнить код.
//задаем переменные [[RESOURCE]] = '{"port": 8017, "host": "8.8.8.8", "from": "slash", "export_man": ["8.8.8.8", "8.8.8.8", "8.8.8.8"], "ty": "http", "resp": 4.86, "us": "en"} {"port": 8018, "host": "9.9.9.9", "from": "slash", "export_man": ["9.9.9.9", "9.9.9.9", "9.9.9.9"], "ty": "http", "resp": 5.76, "us": "en"}'; [[IP]] = []; [[PORT]] = []; //делаем магию [[RESULT]] = "[" + [[RESOURCE]].replace(/\} \{/g, "},{") + "]"; //получаем данные из json var json = JSON.parse([[RESULT]]); for (i = 0; i < json.length; i++) { [[IP]].push(json[i].host); [[PORT]].push(json[i].port); }