Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> jak sparsowac obiekt jQuery zwrócony przez ajaxa
Sadamowski
post
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 1
Dołączył: 4.07.2011

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


witam,
mam problem albo zgłupiałem zmęczony tematem

robei zapytanie GET po jakis tam adres:

  1. $.ajax({
  2. type: 'GET',
  3. url: 'tu ten adresik/search',
  4. cache: false,
  5. dataType : 'script', //ale jsonp tez działa, reszta (np text) wywala bład
  6. data: {cb: 'jQuery18303185707158409059_1370954922211', q: 'cl', lang: 'en', _ : timest},
  7. success: function(html){
  8. alert(html);
  9. },
  10. error: function(data, status){
  11. alert('error: -> ' + status);
  12. }
  13. });
  14. });



zapytanie jest ok, tzn firebug pokazuje co sie dostało spowrotem, a mianowicie jest to json o postaci

  1. jQuery18303185707158409059_1370954922211({'data': {'QueryTerm': 'cl', 'Language': 'en', 'SuggestionItems': {0: {'Category': '', 'Weight': '99', 'Suggestion': 'cloud'}, 1: {'Category': '', 'Weight': '35', 'Suggestion': 'cloud security'}, 2: {'Category': '', 'Weight': '30', 'Suggestion': 'cloud development'}, 3: {'Category': '', 'Weight': '30', 'Suggestion': 'cloud application delivery'}, 4: {'Category': '', 'Weight': '25', 'Suggestion': 'cloud service automation'}, 5: {'Category': '', 'Weight': '25', 'Suggestion': 'cloud management'}, 6: {'Category': '', 'Weight': '20', 'Suggestion': 'client automation'}, 7: {'Category': '', 'Weight': '18', 'Suggestion': 'clip'}, 8: {'Category': '', 'Weight': '18', 'Suggestion': 'closed loop incident process'}, 9: {'Category': '', 'Weight': '18', 'Suggestion': 'closed loop incident process (clip)'}}}})


w firebugu mozna nawet podgladnąc sobie ten obiekcik

Mam dwa pyatnia
1. dostaje błąd: ReferenceError: jQuery18303185707158409059_1370954922211 is not defined , pytanie czemu?
2 najwazniejsze... jak dostać się do danych w tym obiekcie.... potrzebuje wyciągnąc wszystkie elementy "Suggestion"

czy problem jest w tm ze sa tam pojedyncze quotes a nie podwójne.
Każda sugestia mile widziana.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
WiruSSS
post
Post #2





Grupa: Zarejestrowani
Postów: 83
Pomógł: 7
Dołączył: 3.02.2007

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


przede wszystkim nazwy pól nie moga być typu number tylko string po drugie tak jak napisałeś, powinieneś uzyć " zamiast '
Go to the top of the page
+Quote Post
Sadamowski
post
Post #3





Grupa: Zarejestrowani
Postów: 20
Pomógł: 1
Dołączył: 4.07.2011

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


no no.. jasne
tyle ze nie mam zadnego wpływu na to jak jest to zawrane bo jest to zewnętrzny serwis, do którego sie podpinam... jakis inny pomysł jak to obejść

a tak btw.. gdzie mam niby wyspecyfikowane ze nazwy pol biore jako numery?

Ten post edytował Sadamowski 13.09.2013, 10:28:51
Go to the top of the page
+Quote Post
WiruSSS
post
Post #4





Grupa: Zarejestrowani
Postów: 83
Pomógł: 7
Dołączył: 3.02.2007

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


w kodzie, który podałeś kolejne elementy SuggestionItems nie są objęte cudzysłowem.
Na tej stronie jest ładnie opisany format json.

W najgorszej sytuacji mozna to co zwraca ajax dostosować do specyfikacji JSON.

Prosze podaj link do jakiego się odwołujesz ajaxem.
Go to the top of the page
+Quote Post
Sadamowski
post
Post #5





Grupa: Zarejestrowani
Postów: 20
Pomógł: 1
Dołączył: 4.07.2011

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


aa.. dobra ..tam...myślałem ze coś gdzies w moim kodzie wypatrzyłeś. ok, ale tak jak mówiłem , to jest dla mnie tylko źródo danych i nie mam zadnego wpływu na co jest zwracane. To jest nasza wewnetrzna strona w wewnetrznej sieci wiec za chinskiego boga sie tam nie dostaniesz - a nie moge dorwac barana, ktory to pisał bo juz nie pracuje a potem ktos to przejmował i potem jeszcze ktos i nawet na gitcie nie ma sladów bo jakies jełopy nie puszowały zmian.

WiruSSS, dzieki za pomysły ale problem polega na tym ze przy jakimkolwiek innej metodzie odbioru danych 'text' albo 'html' (to akurat troche bez sensu) bo rzuca wyjątkiem. najchetniej przejąłbym to w postaci textu i zamienił wszystko na " ale ni cholera.
jakis pomysł skąd sie bierze ten ReferenceError: jQuery18303185707158409059_1370954922211 is not defined , moze od tego zaczne
Go to the top of the page
+Quote Post
WiruSSS
post
Post #6





Grupa: Zarejestrowani
Postów: 83
Pomógł: 7
Dołączył: 3.02.2007

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


..może cb ..to po porstu callback ...z tego co zostaje zwracane, wygląda jakby ten obiekt został przekazany do funkcji którą przypisujesz do cb. Tak tylko głośno myślę. Może w twoim kodzie powinieneś zdefiniować funkcję (o nazwie którą podajesz w cb) i w niej odebrać ten obiekt z parametru tej funkcji?

[JAVASCRIPT] pobierz, plaintext
  1. function jQuery18303185707158409059_1370954922211(zwracany_obiekt){
  2.  
  3. //tutaj być moze jest dostep do etgo obiektu
  4. console.log(zwracany_obiekt);
  5.  
  6. }
[JAVASCRIPT] pobierz, plaintext


...swoją drogą ...dlaczego akurat taka dziwna nazwa?, nie znam specyfiki tej aplikacji.

[EDIT]
..czy wogóle cb jest wymagane? ...co się stanie jeśli nie podasz tego parametru? ...co wtedy zostanie zwrócone? ..może sam obiekt, który wtedy będziesz mógł przypisać sobie do zmiennej?

Ten post edytował WiruSSS 13.09.2013, 12:25:21
Go to the top of the page
+Quote Post
vonski
post
Post #7





Grupa: Zarejestrowani
Postów: 292
Pomógł: 89
Dołączył: 27.12.2006
Skąd: Warszawa

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


Jeżeli masz dataType ustawione jako 'script' to wydaje mi się, że nie dostajesz JSON-a tylko zwykły tekst - który wygląda jak JSON smile.gif
Czy jeśli masz dataType: 'json' to coś to zmienia? Chociażby ten ReferenceError?


--------------------
Zend Certified Engineer | Microsoft Certified Professional: Programming in HTML5 with JavaScript & CSS3 | Blog
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.08.2025 - 06:09