![]() |
![]() |
![]()
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:
Zapisuje je do bazy MySQL, do pola typu json. I po zapisie w polu mam wartość:
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 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 132 Pomógł: 0 Dołączył: 10.12.2003 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
A nie prościej byłoby: Kod {"kolor": {wartosc: "#ffffff", kolejnosc: 2}, "zdjecie": {wartosc: "test.jpg", kolejnosc: 3}} Dość trudno by mi było to potem sortować. Kod {2: {klucz: "kolor", wartosc: "#ffffff"}, 0: {klucz: "tytuł", wartosc: "Tytuł"} Jako klucz mam stringa i nie moge uzyc integera. I jak najmniej logiki w bazie danych, bo to się potem mści (szczególnie w MySQL, bo ta baza ma tą cudowną właściwość, że np. zamiast zwrócić komunikat błędu to po prostu przytnie sobie string gdy jest za długi). Jeśli tylko jest to możliwe, to powinniśmy unikać zapisywania danych w taki sposób. Ten json to był tylko przykład - użyty tylko dla nakreślenia problemu - nie ma nic wspólnego z oryginalnym wyglądem. Tak czy siak uważam, że json to jeden z najbardziej wygodnych formatów przechowywania danych - zwłaszcza, że potem są przejmowane przez front-end. O ilość znaków się nie martwię - tu nie mam takiego niebezpieczeństwa. ---- Tak czy siak. Ostatecznie pozostałem przy formacie pola longtext i użyłem rozwiązania od @trueblue. Dla mnie ten temat jest zamknięty. Ten post edytował jol.us_ 20.10.2017, 13:59:26 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 2.10.2025 - 22:43 |