Редактор json


SeVlad
190

Коллеги, кто как работает с json-файлами?

Мне не часто приходилось, но всегда хватало akelpad-а и/или LibreOffice. А тут понадобилось почистить json от ненужного и столкнулся проблемкой.

В файле 3к строк в формате «ключ»:»значение». Задача отобрать только нужные ключи. Но засада оказалась в том, что в значениях слишком много символов с серилизованными данным: +350к.

Либра ругается — «невозможно полностью загрузить данные по причине превышения максимального количества символов в ячейке». А в акеле не очень удобно.

Погуглив ничего внятного не нашел. Более-менее удобные есть онлайновые, но они ограничены в другом, да хочется дектопные под винду. Хотя в принципе и серверные (php-шные напр.) подойдут.


Sly32

Эх, тема мне настолько близкая и интересная, что попытаюсь влезть, в надежде на твою адекватность и без перехода на личности. Как раз вчера писал скрипт, который формирует респонс с json-файлом для REST API. Была задача — удалить из файла все ключи с пустыми value. Немного усложнялось тем, что пользователь могу вбить в форме пробел в поле и формировался json не с null а просто пустой ответ.По итогу написал лямбду на AWS, которой можно скормить файл и она вернет очищенный. Правда там ограничение на 10 мег на загружаемый файл. На пайтоне вышло пару строк. Не думал просто написать скрипт, который все это будет делать? 

Интересно было бы увидеть решение на другом языке


Алеандр

Поскольку большую часть проектов делаю на PHP, то и на нем же скрипт прохода или обработки. По необходимости, быстро и эффективно. Пару раз простейшие делал вообще bash. Вручную чистить тысячи строк — зачем? json_decode — array — foreach написать 5 минут, зато четко и без ошибок на выходе, вручную с таким массивом всегда остается шанс пропустить что-то.

Собственно, я в своих проектах давно отказался от mysql и схожих баз данных, именно с json-хранением и работаю.


SeVlad

Алеандр #:
Вручную чистить тысячи строк — зачем?

Потому что надо. Надо оставить только то что надо, а остальное удалить. Задача — отобрать [не]нужное.


ArbNet

SeVlad #:
Потому что надо. Надо оставить только то что надо, а остальное удалить. Задача — отобрать [не]нужное.

Так отбери в чём проблема? Делов на несколько минут. Не умеешь, научись, не хочешь учится на фрилансе заказывай скрипт.


SeVlad

ArbNet #:
Так отбери в чём проблема? Делов на несколько минут.

Научи, гуру-сказочник 🙂

(что-то мне подсказывает что и тут ты так же далёк от темы, как первоклассник от квантовой физики.)


ArbNet

SeVlad #:
Научи, гуру-сказочник 🙂

У тебя целый интернет есть и мозг надеюсь в черепной коробке.

Мне проще сделать(но мне это не нужно) чем учить таких как ты.


SeVlad

ArbNet #:
Мне проще сделать(но мне это не нужно) чем учить таких как ты.

Что у тебя пока получается — так это писать на сёрче сказочки о том что ты что-то можешь. Некоторые тебя раскололи ещё 2 года назад, но некоторые всё ещё верят. 🙂

Вот реально — ни твоё «мнение» ни тем более «знания» мне не интересны. И я бы попросил освободить в этом топике место для практиков.


Алеандр

SeVlad #:
Потому что надо.

В задаче поставлено «обязательно вручную»? Вряд ли. Вопрос не в том, надо ли, вопрос — почему вручную тысячи строк? Смысл огрызаться, когда тебе помогают?

На пыхе делается так:
1. Сначала команда json_decode  твоего массива на js. Сам массив можно считать из файла, можно задать как строку. Мне удобнее из файла. На выходе ты получишь массив значений array.
2. Если это простая связка «ключ»:»значение», как у тебя в условии, то дальше foreach (массив as $key => $val). Перебираешь свой массивчик в связке ключ-значение.
3. Проверяешь условие. Тут указываешь уже то, какое тебе требуется: if ($key==») или if ($val!=»).. Даже регекспы можно заюзать, если что-то мудреное нужно исключить.
4. Всё, заносишь в новый массив результат и дальше его либо выводишь на экран, либо в файл сохраняешь. Как удобно.

Один раз написал, всегда пользуешься, только меняешь условия if по задаче.

Ты же работаешь на серваках, бери любой, да хоть клиентский, за 10 минут пишешь скрипт, подкидываешь файлик и получаешь результат.

Ручную обработку я могу предположить только в том случае, если чистить нужно какие-то разнообразные данные, не поддающиеся систематизации. Но тут я не подскажу, это вопрос к тому, кто создал такой идиотен-массив. Да и то, в большей степени, почти всегда можно найти закономерность того, что нужно оставить или того, что нужно удалить, а от этого поменяются лишь if.


SeVlad

Алеандр #:
В задаче поставлено «обязательно вручную»? Вряд ли. Вопрос не в том, надо ли, вопрос — почему вручную тысячи строк? Смысл огрызаться, когда тебе помогают?

Я не огрызаюсь. Но как ты себе представляешь не вручную задать десяток фильтров для отбора нужных строк?

Алеандр #:
Один раз написал, всегда пользуешься, только меняешь условия if по задаче.

Да написать-то не проблема (но надо ещё и аякс заюзать, а тут я плаваю). Только вот не целесообразно. И времени уйдёт  много больше, чем я это сделаю в акеле+либре и надо это.. ну чуть ли не разово.

Мне:

а) интересно если ли программа/скрипт, который справиться с моей конкретной задачкой.

б) кто что юзает на практике. Ведь и структура joson у всех разная и задачи.


LEOnidUKG

Может что-то из этого списка подойдёт: http://www.butleranalytics.com/15-json-editors-free-online-windows-mac-browser/

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *