Autor | Zpráva | ||
---|---|---|---|
Musilda Profil |
#1 · Zasláno: 8. 10. 2020, 07:25:03
Hezký den,
potřebuji načíst json, který je již vygenerovaný do souboru. Problém je v tom, že v něm jsou html tagy pto obrázky: "thumb":"<img width=\"545\" height=\"327\" data-src=\"https:\/\/www.example.com\/wp-content\/uploads\/2020\/03\/shop.png\" class=\"lazyimage wp-post-image\" alt=\"\" \/>","categories" a při parseJson to vyhodí chybu Unexpected nuber in position... což, jak předpokládám je díky těm uvozovkám width=\"545\". Lze toto nějak vyřešit? Děkuji za každou radu. |
||
Kajman Profil |
#2 · Zasláno: 8. 10. 2020, 08:03:07
Jen ten vygenerovaný json validní? V uvedeném kousku chyba nevypadá, ale je možná jinde.
|
||
Musilda Profil |
#3 · Zasláno: 8. 10. 2020, 08:31:30
Json je validní, je generovaný z pole v PHP, ale při parsování ve scritpu to padne na té uvozovce width=\"545\.
|
||
Radek9 Profil |
Musilda:
To ne, to je escapované správně. Jak vypadá celý ten JSON? Čím ho parsuješ? (JSON.parse?) |
||
Musilda Profil |
#5 · Zasláno: 8. 10. 2020, 08:50:57
Ano, pomocí JSON.parse. Mám v kódu dva jsony, oba jsou z php pole pomocí json_encode a zlobí jen tento, kde je html kód obrázku.
|
||
Radek9 Profil |
Musilda:
Není možné, že se před výpisem to escapování zruší? V tu chvíli by se ukončil string a za ním by následovalo číslo. Holt potřebujeme víc informací. Jak ten JSON přesně vypisuješ? Jak přesně vypadá, když ho načítáš v JS? Ideální by byl prostě export toho, co reálně načítáš do JS. |
||
Musilda Profil |
#7 · Zasláno: 8. 10. 2020, 09:06:03
Takto vypadá json před tím, než ho pošlu do JSON.parse. Snad bude stačit jen úryvek, protože je to dost velké.
{"17299":{"permalink":"https://www.dognet.sk/kampane/123led-sk/","title":"123led.sk","thumb":"<img width="545" height="327" data-src="https://www.dognet.sk/wp-content/uploads/2018/11/123led-moje-logo.png" class="lazyimage wp-post-image" alt="" />","categories":{"elektro":"Elektro"},"commision":"až 5%"},"40703":{"permalink":"https://www.dognet.sk/kampane/1autodiely-sk/","title":"1autodiely.sk","thumb":"<img width="545" height="327" data-src="https://www.dognet.sk/wp-content/uploads/2019/02/1autodiely-logo.png" class="lazyimage wp-post-image" alt="" />","categories":{"ine":"Iné"},"commision":"až 5%"},"5420":{"permalink":"https://www.dognet.sk/kampane/kampan-2jakost-cz/","title":"2jakost.cz","thumb":"<img width="545" height="327" data-src="https://www.dognet.sk/wp-content/uploads/2017/07/2jakostt.png" class="lazyimage wp-post-image" alt="" />","categories":{"elektro":"Elektro"},"commision":"7%"},"1689":{"permalink":"https://www.dognet.sk/kampane/kampan-4home-cz/","title":"4Home.cz","thumb":"<img width="545" height="327" data-src="https://www.dognet.sk/wp-content/uploads/2015/04/4home-1.png" class="lazyimage wp-post-image" alt="" />","categories": znění chyby je: Unexpected number in JSON at position 106 |
||
Kajman Profil |
#8 · Zasláno: 8. 10. 2020, 09:22:48
Všimněte si, že teď tam escapování není, proto to padá. Jak obsah souboru přenášíte pro použití v javascriptu?
|
||
Musilda Profil |
#9 · Zasláno: 8. 10. 2020, 09:41:47
No tak to je jasný, připadám si jak idiot. Vypisuji to pomocí file_get_contents a echo do <srcipt> tagu v těle stránky.
|
||
Radek9 Profil |
#10 · Zasláno: 8. 10. 2020, 09:44:32
Musilda:
To by neměl být ten problém. Tohle prostě vypadá na to, že tam někde používáš stripslashes nebo podobnou funkci. |
||
Kajman Profil |
Abyste mohl použít JSON.parse, tak to musí být vložené do javascriptu a escapováno ještě jednou navíc jako string.
Např. <script> var data = JSON.parse(<?php echo json_encode(file_get_contents(...)); ?>); </script> Pokud jsou data jistojistě validní objekt, můžete to dát bez encodování a dekódování. Ale první varinata je více chybyvzdorná. <script> var data = <?php echo file_get_contents(...); ?>; </script> |
||
Musilda Profil |
#12 · Zasláno: 8. 10. 2020, 10:33:37
Díky všem, myslím, že teď už si s tím poradím, když jste mi pomohli pochopit problém.
|
||
Časová prodleva: 4 roky
|
0