Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mysql][php] Pole typu json, problem z normalizacją
jol.us_
post
Post #1





Grupa: Zarejestrowani
Postów: 132
Pomógł: 0
Dołączył: 10.12.2003
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Mam dane json, przykładowo:
  1. {"tytul":"Tytul","kolor":"#ffffff","zdjecie":"test.jpg"}


Zapisuje je do bazy MySQL, do pola typu json.
I po zapisie w polu mam wartość:
  1. {"kolor": "#ffffff", "tytul": "Tytul", "zdjecie": "test.jpg"}


Jak widać przy zapisie dane zostały znormalizowane - posortowane wg. klucza.
Czy da się to jakoś wyłączyć tak aby kolejność kluczy z oryginalnego json została zachowana również w polu tabeli MySQL?

Powyższy json to tylko przykład, w rzeczywistości danych jest więcej i są dynamiczne (różne wartości i kolejności). Dane mają wyświetlane dokładnie wg. tej kolejności jak mam w oryginale - posortowanie przy zapisie to uniemożliwia.

Ten post edytował jol.us_ 18.10.2017, 11:55:48
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
jol.us_
post
Post #2





Grupa: Zarejestrowani
Postów: 132
Pomógł: 0
Dołączył: 10.12.2003
Skąd: Kraków

Ostrzeżenie: (0%)
-----


No to bryndza (IMG:style_emoticons/default/sad.gif)
Liczyłem, że może da sie to jakoś wyłączyć w konfiguracji bd.


Tablice numerowane mnie nie urządzają bo potem nie będę się mógł do nich odwoływać przez json_extract(pole, '$.klucz')
Dane są dynamiczne, za każdym razem inne, jedynie nazwy kluczy maja znaczenie.

Jakiś pomysł jak sobie z tym poradzić inaczej?
Nie wierze, że tylko ja z tym mam problem.

Może jako osobny obiekt json dawać kolejność, na zasadzie:
  1. {"kolor": "#ffffff", "tytul": "Tytul", "zdjecie": "test.jpg", kolejnosc:[{0:"tytul", 1:"kolor", 2:zdjecie }]}



Cytat(viking @ 18.10.2017, 13:38:03 ) *
Zapisz jako tekst (przykładowo mariadb i tak json aliasuje do longtext).

Tak miałem pierwotnie. I wszystko pięknie działa. Problem mam jednak z wyszukiwaniem. W polach typu json mogę szukać w określonych kluczach, w polu tekstowych już nie.





Cytat(nospor @ 18.10.2017, 13:39:42 ) *
@viking ale wowczas przy decode i tak dostanie zmieniona kolejnosc. Moze nie za pierwszym razem, moze nie za drugim, ale w koncu dostanie.

Hmm... nie spotkałem się.
Zawsze dekoduje mi w tej samej kolejności co ma w obiekcie.

Ten post edytował jol.us_ 18.10.2017, 12:55:41
Go to the top of the page
+Quote Post

Posty w temacie
- jol.us_   [mysql][php] Pole typu json   18.10.2017, 11:54:36
- - nospor   obiektu json NIE posortujesz (mam na mysli ze nie ...   18.10.2017, 12:03:59
- - jol.us_   Właśnie mi chodzi o to aby nie były sortowane i zo...   18.10.2017, 12:28:04
- - nospor   CytatWłaśnie mi chodzi o to aby nie były sortowane...   18.10.2017, 12:29:33
- - viking   Zapisz jako tekst (przykładowo mariadb i tak json ...   18.10.2017, 12:38:03
- - nospor   @viking ale wowczas przy decode i tak dostanie zmi...   18.10.2017, 12:39:42
- - jol.us_   No to bryndza Liczyłem, że może da sie to jakoś ...   18.10.2017, 12:45:44
- - nospor   Nie wierze, Tez mialem z tym problem. Rozwiazanie...   18.10.2017, 12:52:36
- - jol.us_   Tak jak proponował @viking już mam. Właśnie chcia...   18.10.2017, 12:55:17
- - trueblue   Czy oryginalna kolejność oznacza, że raz możesz mi...   19.10.2017, 07:53:57
- - jol.us_   Cytat(trueblue @ 19.10.2017, 08:53:57...   19.10.2017, 08:11:29
- - trueblue   No, ale nie odpowiedziałeś na pytanie. Czy dany kl...   19.10.2017, 08:44:12
- - jol.us_   Generalnie klucze nie są z góry zdefiniowane. Ich ...   19.10.2017, 10:17:20
- - trueblue   Ok, czyli każdy JSON traktujemy odrębnie, nawet je...   19.10.2017, 10:23:03
- - jol.us_   Tak, też zacząłem tak kombinować. Trzymać gdzieś j...   19.10.2017, 10:33:03
- - trueblue   W jakim momencie potrzeba Ci tak kolejność? Gdzie ...   19.10.2017, 10:33:42
- - jol.us_   1. W formularzu edycji - generując formularz danyc...   19.10.2017, 10:35:12
- - trueblue   W takim razie możesz przechowywać oryginalną kopię...   19.10.2017, 10:40:23
- - jol.us_   Trzymanie 2 razy danych to mało eleganckie. Wiem,...   19.10.2017, 10:44:22
- - trueblue   Zawsze możesz wybierać wszystkie rekordy, a warune...   19.10.2017, 10:49:49
- - jol.us_   Tak używam tylko w WHERE . [PHP] pobierz, plainte...   19.10.2017, 10:58:57
- - trueblue   [SQL] pobierz, plaintext SELECT pole_json, inne_po...   19.10.2017, 11:02:50
- - jol.us_   Genialne. Dokładnie to czego potrzebowałem. Dzięki...   19.10.2017, 11:15:14
- - Pilsener   Kod{"kolor": "#ffffff", "z...   20.10.2017, 07:40:58
- - jol.us_   Cytat(Pilsener @ 20.10.2017, 08:40:58...   20.10.2017, 13:57:49


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 28.09.2025 - 02:06