Как разобрать Json | |
---|---|
Sejko Автор Сообщений: 146 Откуда: Moscow Дата регистрации: 09.01.2005 |
Помогите , приходит файл такого вида во вложении resultat.txt ,
надо его разобрать, есть знаю метод Json , но никогда не имел дела ------------------ sejko |
Re: Как разобрать Json | |
---|---|
akvvohinc Сообщений: 4224 Откуда: Москва Дата регистрации: 11.11.2008 |
|
Re: Как разобрать Json | |
---|---|
Sejko Автор Сообщений: 146 Откуда: Moscow Дата регистрации: 09.01.2005 |
Посмотрел, есть у меня такой пример , а если записей как в примере Много и с начала идет
{"documents":[ пример прикладываю т.е. записей непонятно сколько, как разобрать ------------------ sejko Исправлено 2 раз(а). Последнее : Sejko, 27.01.20 09:25 |
Re: Как разобрать Json | |
---|---|
ssa Сообщений: 13008 Откуда: Москва Дата регистрации: 23.03.2005 |
ГДЕ есть? Откуда такие познания? Так же как и одну, возможно в цикле. ------------------ Лень - это неосознанная мудрость. |
Re: Как разобрать Json | |
---|---|
Sejko Автор Сообщений: 146 Откуда: Moscow Дата регистрации: 09.01.2005 |
можете помочь на примере вложения
------------------ sejko |
Re: Как разобрать Json | |
---|---|
ssa Сообщений: 13008 Откуда: Москва Дата регистрации: 23.03.2005 |
Большой спасиб за разжевывание мне неизвестных мне моих возмжоностей. ------------------ Лень - это неосознанная мудрость. |
Re: Как разобрать Json | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
Лучше всего "разобрать ручками". Ничего сложного в этом нет, но зато не будет никакой зависимости от чьих-либо библиотек.
Алгоритм тривиальный. В отдельную таблицу записать все нужные для обработки наименования свойств - на каждое свойство одна запись в таблице. Далее в цикле по условию FOR !FEOF() считывается запись из Json-файла. Далее в следующем цикле запись "разбирается" по свойствам (из таблицы с наименованиями свойств). В CASE... ENDCASE обрабатывается каждое из свойств. Результат записывается в выходную таблицу. Конечно, есть нюансы. Например, надо обязательно учесть наличие экранированных символов в Json-файле. В общем за полдня или за день вполне можно написать свой конвертер, который и в будущем пригодится. Думаю, что при таком алгоритме разбора Json-файлов скорость обработки будет высокой. Да и вообще ручной разбор позволяет почувствовать неочевидные нюансы предметной области. Исправлено 3 раз(а). Последнее : Simple777, 27.01.20 10:20 |
Re: Как разобрать Json | |
---|---|
ssa Сообщений: 13008 Откуда: Москва Дата регистрации: 23.03.2005 |
При наличии filetostr() это очень полезный совет. Ведь точно известно, что файлики все будут десятки мегов размером... А сторонние библиотеки такие все закрытые, непрозрачные, не известно что и как делающие.... ------------------ Лень - это неосознанная мудрость. |
Re: Как разобрать Json | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
Можно и в переменную загнать Json-файл - это не так принципиально. А причём тут прозрачность чужих библиотек, вааще непонятно. Чужими библиотека надо пользоваться тогда и только тогда, когда свое решение заведомо уступает по скорости. Мне пришлось разбирать Json-файл в одном проекте. При ручном разборе я поставил перед хозяином файла много неочевидных как для меня, так и для разработчика "с той стороны" вопросов. Ручной разбор в этом отношении весьма полезен. Исправлено 1 раз(а). Последнее : Simple777, 27.01.20 10:44 |
Re: Как разобрать Json | |
---|---|
ssa Сообщений: 13008 Откуда: Москва Дата регистрации: 23.03.2005 |
Время написания своего кода, при этом, конечно же, не учитывается? Цитата:Потрясающе. И, конечно же, все вопросы были именно по формату передачи, а не по семантике данных... ------------------ Лень - это неосознанная мудрость. |
Re: Как разобрать Json | |
---|---|
Sejko Автор Сообщений: 146 Откуда: Moscow Дата регистрации: 09.01.2005 |
Ssa , вы мне скажите. Можете дать дельные советы!
Или образец ------------------ sejko |
Re: Как разобрать Json | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
Это была новая функция по обмену данными. Разработчик "с той стороны" вообще не обязан был мне что-то рассказывать. Во всяком случае, он отвечал на мои вопросы. Когда же я начал изучать Json-файл, то выяснились далеко не очевидные нюансы. Например, выяснилось, что в одном из свойств бывает не только число, но и NULL. Причём NULL подразумевается тогда, когда вместо числа есть только разделительные кавычки. И другие подобные нюансы. Что же касаемо скорости разработки "своими силами". Во всем нужен здравый смысл. Не стоит разрабатывать свой текстовый редактор. Но почему бы и не сделать свой конвертер Json-файлов? Json-формат весьма популярен, и конвертер наверняка пригодится не однажды. Исправлено 1 раз(а). Последнее : Simple777, 27.01.20 11:03 |
Re: Как разобрать Json | |
---|---|
ssa Сообщений: 13008 Откуда: Москва Дата регистрации: 23.03.2005 |
И это ну ведь никак не относится к семантике данных... Закат солнца вручную всегда сопровождается каким-то "нюансами". Цитата:Вот именно. Цитата:Хотя бы потому, что он уже нарисован, оттестирован, в том числе и по скорости, свободно доступен, достаточно малогабаритен, легок в использовании и т.д. Цитата:А что, не однажды использовать можно только свой код? ------------------ Лень - это неосознанная мудрость. |
Re: Как разобрать Json | |
---|---|
Sejko Автор Сообщений: 146 Откуда: Moscow Дата регистрации: 09.01.2005 |
Задал тот же вопрос , на соседнем форуме SQl.ru
и пришел неожиданный ответ в лице Sergey Sizov Берется готовая либа и разбирается результат ее работы в виде чисто фоксовых объектов. github.com ------------------ sejko |
Re: Как разобрать Json | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
NULL в данном случае означал важное событие, о котором я просто не знал. Начал уточнять у разработчика, и узнал разные тонкости. Насчёт Json-конвертера. Во-первых, у меня был в проекте не VFP. Во-вторых, ни разу не запускал такой конвертер. Даже любопытно - а что же там в выходной таблице получается? |
Re: Как разобрать Json | |
---|---|
ssa Сообщений: 13008 Откуда: Москва Дата регистрации: 23.03.2005 |
Ну так в FPD нет понятия NULL, а там где оно есть - это все рюшечки, не нужные для обработки алфавитно-цифровой информации. Цитата:Об этом очень трудно догадаться Цитата:Есть чем гордиться. И порассуждать о вкусе устриц с теми, кто их ел, ни разу их не пробовав. Цитата:А где и что говорилось про таблицу? ------------------ Лень - это неосознанная мудрость. Исправлено 1 раз(а). Последнее : ssa, 27.01.20 11:48 |
Re: Как разобрать Json | |
---|---|
pasha_usue Сообщений: 3650 Откуда: Е-бург Дата регистрации: 06.10.2006 |
Сергей. Откуда такая двуличность? На скуле ответил, а тут не ответил (;Ж |
Re: Как разобрать Json | |
---|---|
ssa Сообщений: 13008 Откуда: Москва Дата регистрации: 23.03.2005 |
Я больше не буду... ------------------ Лень - это неосознанная мудрость. |
Re: Как разобрать Json | |
---|---|
Sejko Автор Сообщений: 146 Откуда: Moscow Дата регистрации: 09.01.2005 |
------------------ sejko |
Re: Как разобрать Json | |
---|---|
Sejko Автор Сообщений: 146 Откуда: Moscow Дата регистрации: 09.01.2005 |
Начал копаться
в первых ругается на весь resulatat.txt line too long ... урезал и все равно чего то не то, поправьте text to mssample2 noshow [{"request_id":"37f0eabe-5c3b-432c-bffb-ef0f6d9cc219","document_id":"7716ee2e-a8a4-465c-982e-1ca1a3b439d4","date":"2020-01-14 15:55:29","processed_date":"2020-01-14 15:55:30","sender":"9ec039f8-2a29-4b7a-8664-25490f23c52a","sys_id":"86325e0c-9a23-4547-ad8a-219b4fc7fd03","doc_type":601,"doc_status":"FAILED_RESULT_READY","file_uploadtype":1,"version":"1.34"},{"request_id":"de92bbd1-c396-479a-a26d-92be2087fd74","document_id":"26646343-ffb9-4dc2-94a9-cd7142eaf663","date":"2020-01-14 15:36:18","processed_date":"2020-01-14 15:36:19","sender":"9ec039f8-2a29-4b7a-8664-25490f23c52a","sys_id":"86325e0c-9a23-4547-ad8a-219b4fc7fd03","doc_type":601,"doc_status":"FAILED_RESULT_READY","file_uploadtype":1,"version":"1.34"}] ENDTEXT *!* *!* text to mssample2 noshow *!* [ *!* { *!* "Order": { *!* "Number":"SO43659", *!* "Date":"2011-05-31T00:00:00" *!* }, *!* "AccountNumber":"AW29825", *!* "Item": { *!* "Price":2024.9940, *!* "Quantity":1 *!* } *!* }, *!* { *!* "Order": { *!* "Number":"SO43661", *!* "Date":"2011-06-01T00:00:00" *!* }, *!* "AccountNumber":"AW73565", *!* "Item": { *!* "Price":2024.9940, *!* "Quantity":3 *!* } *!* } *!* ] *!* ENDTEXT nfOpenJson( m.mssample2,'$.array', ' ; - request_id v(200) $.Order.request_id ; - document_id v(200) $.Order.document_id ; - Date t $.Order.Date; - processed_date t $.Order.processed_date ; - sender v(200) $.Order.sender ; - sys_id v(200) $.Order.sys_id ; - doc_type v(200) $.Order.doc_type ; - doc_status v(200) $.Order.doc_status ; - file_uploadtype v(200) $.Order.file_uploadtype ; - Order JSON; ' ) browse nfOpenJson( m.msSample2 ) browse nfOpenJson( m.msSample2,'$.array') browse ------------------ sejko |
© 2000-2024 Fox Club  |