За последние 24 часа нас посетили 22639 программистов и 1209 роботов. Сейчас ищут 756 программистов ...

CSV в JSON и чтение его

Тема в разделе "Прочие вопросы по PHP", создана пользователем anadonam, 3 фев 2020.

Метки:
  1. anadonam

    anadonam Новичок

    С нами с:
    10 янв 2020
    Сообщения:
    89
    Симпатии:
    3
    Адрес:
    Воронеж
    Появилась необходимость поработать немного с форматом JSon
    Задача преобразовать csc в этот формат и прочитать...
    Код (Text):
    1.  
    2. Есть 2 структуры:
    3.  
    4. Вариант 1
    5.  
    6. 1 # Вас0 # Ивано0 # Вороне0 # 1970
    7. 2 # Вас1 # Ивано1 # Вороне1 # 1971
    8. 3 # Вас2 # Ивано2 # Вороне2 # 1972
    9. 4 # Вас3 # Ивано3 # Вороне3 # 1973
    10.  
    11. Вопрос 1:
    12. a) я вот  еще не понял. я так понимаю, разделитель #  мне нужно заменять именами,
    13. {"id":"1",  "name": "Вас0" # "suname": "Ивано0", "gorod": "Вороне0", "eyar": "1970"}
    14. или можно  обойтись без нее то есть
    15. {"id": [ 1, Вас0, Ивано0,Вороне0, 1970]}
    16. //мне кажется вот здесь я ошибаюсь - мне такая бы структура была выгодней.
    17.  
    18. б) как будет выглядеть структура JSon - как оптимальнее
    19. с) как обращаться ( на php)  к элементам массива
    20. [ну допустим мне нужно получить год 171(если известно id)]
    21.  
    22. Вариант 2
    23.  
    24. a) как будет выглядеть структура JSon - как оптимальнее
    25. b) как обращаться [php]  к элементам массива
    26. [ну допустим мне нужно получить 1) название категории 2) идентификатор [6]  и  год [175]
    27.  
    28.  
    29. Категория 1
    30. 1 # Вас0 # Ивано0 # Вороне0 # 1970
    31. 2 # Вас1 # Ивано1 # Вороне1 # 1971
    32. 3 # Вас2 # Ивано2 # Вороне2 # 1972
    33. 4 # Вас3 # Ивано3 # Вороне3 # 1973
    34. Категория 2
    35. 5 # Вит0 # Витпов0 # Липе0 # 1970
    36. 6 # Вит1 # Витопо1 # Липе1 # 1975
    37. 7 # Вит2 # Витопо2 # Липе2 # 1976
    38. 8 # Вит3 # Витопо3 # Липе3 # 1987
    39.  
    40. // если что то неясно готов уточнить.[[/php]
     
    #1 anadonam, 3 фев 2020
    Последнее редактирование: 3 фев 2020
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.825
    Симпатии:
    738
    Адрес:
    Татарстан
    Из того что показано, автоматически не преобразовать. Нужно чтооб в csv первая строка была с именами... Либо просто условиться что первые данные это то, вторые другое...
    Пиши тип парсера , который построчно формирует ассоциативный массив, а потом его просто через json_encode() и готов json
     
  3. anadonam

    anadonam Новичок

    С нами с:
    10 янв 2020
    Сообщения:
    89
    Симпатии:
    3
    Адрес:
    Воронеж
    прошу прощения
    примечание
    мне не нужно автоматически... скрипт я напишу любой (конвертер это как раз мелочи..тут ....)
    мне нужна структура - логическая... и как с ней работать (как доставать элементы..
    при примерах используйте любые имена, как удобней... делайте любые подставки которые необходимы.. если это еще будет с комментариями хотябы коротенькими чтобы чуть понять а не тупо юзать ... это вообще суппер.
    (я тут просто учусь сразу практикой.... )
     
  4. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.825
    Симпатии:
    738
    Адрес:
    Татарстан
    Конкретно по человечески задай вопрос? для начал один..
     
  5. anadonam

    anadonam Новичок

    С нами с:
    10 янв 2020
    Сообщения:
    89
    Симпатии:
    3
    Адрес:
    Воронеж
    да конечно. на столько на сколько могу.

    есть файл вот с такой структурой

    1 # Вас0 # Ивано0 # Вороне0 # 1970
    2 # Вас1 # Ивано1 # Вороне1 # 1971
    3 # Вас2 # Ивано2 # Вороне2 # 1972
    4 # Вас3 # Ивано3 # Вороне3 # 1973


    1) как эти вот данные записать в формате Json
    2 ) не надо алгоритм преобразования
    3) как эти данные будут выглядеть если бы они были в формате Json?
    4) представьте что это выборка из БД (имена столбцов остсвует но нам они известны.)
    ===============
    // если верхнее понятно тогда вторая часть вопроса варианта 1.
    5) сейчас после функци explode() выполненной в цикли для чтения всех строк. и помещения в массив (он получается двумерным). c ними работаем так

    $arrey[0][0] == (имеет значение) 1
    $arrey[1][0] == (имеет значение) 2
    $arrey[2][0] == (имеет значение) 3

    $arrey[0][1] == (имеет значение) Вас0
    $arrey[1][1] == (имеет значение) Вас1
    $arrey[2][1] == (имеет значение) Вас2


    А как работать этими данными в Json после json_decode ?
     
    #5 anadonam, 3 фев 2020
    Последнее редактирование: 3 фев 2020
  6. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.825
    Симпатии:
    738
    Адрес:
    Татарстан
    Что значит - как работать в json? Не надо с ними работать в этом формате.. он для того чтоб предать данные, или чтоб получить.

    Php имеет две функции преобразования в/из json в массивы. Работайте с массивами
     
  7. anadonam

    anadonam Новичок

    С нами с:
    10 янв 2020
    Сообщения:
    89
    Симпатии:
    3
    Адрес:
    Воронеж
    отлично
    продолжаем.

    КАК мне обращаться к элементам массива ?
    но прежде чем обращаться к нему в него нужно что то поместить..
    нужно поместить Json
    Json формат стандартный но разница сложностью по вложенностям исходя из потребностей.
    давайте сделаем простенький файл json-чик оптимальной сложности для данных, которые у казал выше ?!

    теперь мне кажется даже олень поймет задачу.
    но если не поняно давайте еще наводящие вопросы и продолжим разжевывание!

    // я тут читал читал - в этих учебниках вот такие примеры
    $obj = json_decode($json_file);
    $date = $obj->items[0]->gender->name;
    я ничего не понимаю....
     
  8. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.825
    Симпатии:
    738
    Адрес:
    Татарстан
    Ну кашку вам жевать никто не будет
    1. Прочтите про массивы. Поработайте с ними
    2. Прочтите про ассоциативные массивы. Поработайте с ними.
    3. Про объекты ещё...
    Появятся вопросы спрашивайте
     
  9. acho

    acho Активный пользователь

    С нами с:
    28 дек 2016
    Сообщения:
    854
    Симпатии:
    210
    Адрес:
    Санкт-Петербург
    А что, в самописах json не используется?
     
  10. anadonam

    anadonam Новичок

    С нами с:
    10 янв 2020
    Сообщения:
    89
    Симпатии:
    3
    Адрес:
    Воронеж
    не понял про кашку
    тут ответ на 2 строчки
    вот такой (только нужен правильный)

    $obj = json_decode("{"id":"1", "name": "Вас0" # "suname": "Ивано0", "gorod": "Вороне0", "eyar": "1970"}");
    $date = $obj->items[0];

    @ADSoft я вас понял , не мешайте проходите.
    (и не надо баловаться троллингом а я вам всеголишь подыграл...)..я сам не прочь когда не дох..т до эбеначества)
    --- Добавлено ---
    @acho некоторые самописы были написаны ДО появления этого формата. а csv используется в прикладных приложения ДО появления интернета.

    зачем я это переделываю
    > рассчитал и есть смысл в выигрыше в оптимальности.. (код меньше время выполнения скрипта меньше..) по причине начал работать много с аяксом. (до этого не приходилось) - по работе с самим аяксом вопросов не будет (там все яснее ясного и давно).
     
    #10 anadonam, 3 фев 2020
    Последнее редактирование: 3 фев 2020
  11. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.825
    Симпатии:
    738
    Адрес:
    Татарстан
    Делаете просто
    PHP:
    1. echo '<pre>'; print_r($obj);
    2. И наглядно на экране видите что в obj, и как к нему обращаться
     
  12. anadonam

    anadonam Новичок

    С нами с:
    10 янв 2020
    Сообщения:
    89
    Симпатии:
    3
    Адрес:
    Воронеж
    Ок. это ответ на 2 вопрос как работать с массивом
    а как насчет первого?
    сам формат JSon

    @ADSoft, я не первый год замужем..
    я отлично вижу что вы не хотите!
    может и не надо? зачем?- флуда много толк отсутствует..
    может кто другой подскажет - а спешки у меня нету.
    здесь не подскажут еще форумы есть.....
    [а я попозже отработаю (чем смогу)- у меня в данный момент времени маловато. другие темы читать]

    ==============
    я здесь еще и цель имею - может партнер найдется немного щарящий в кодинге
    Идей много - одному все не попеределать (например информеры - а они вот на этой структуре будут) ... стучаться иногда.... но что то пока что были с тематикой проно на дорвеи тянут...а мне не интересно
     
    #12 anadonam, 3 фев 2020
    Последнее редактирование: 3 фев 2020
  13. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.752
    Симпатии:
    1.322
    Адрес:
    Лень
    o_O