Wyświetlenie tablicy w formacie Json

0

Witam, mam mały problemik. Próbuje wyswietlic dane w formacie json za pomoca JavaScript (JQuery). Jednak mam problem z wyświetleniem tablicy.

function server(port, host) {
					$.ajax({
						type : "POST",
						url : "http://biura-adaptacyjne.pl/server.php",
						dataType : "json",
						cache : false,
						success : function(data) {
						var content = '';
						$.each(data.players, function(i, p){
							content += '<li>' + p.nick + '</li>';
						});
						$("#players").html(content);
						}
					});
				}

odpowiedźz serwera:

{ "name":"Serwer AoS TCB", "online":"2", "slots":"10", "players": [ { "nick":"SkyWhite" , "ping":"80","team":"FOL","points":"0" } { "nick":"MaxyBlack" , "ping":"272","team":"Spectator","points":"0" } ] }
 
0

Czym się objawia problem? Jakieś błędy w konsoli?

Edit: Zajrzyj w dokumentację jQuery i zrób sobie obsługę error.

0

Problem jest w tym, że jesli jest tylko jeden player to wyswietlenia to go wyswietla, ale gdy jest ich juz np dwóch to nie wyswietla się nic.

0

No widzisz, dało się napisać. JSON jest błędny, nie ma przecinka między elementami - czym to generujesz?
Bo w ogóle rozstrzelone to to spacjami, chyba nie generujesz tego ręcznie?

0

do wygenerowania uzywam skryptu w pythonie

{
    "name":"{{server.name}}",
    "online":"{{server.connections|count}}",
    "slots":"{{server.max_players}}",
	"players": [
	{% for player in server.players.values() %}
		{ "nick":"{{player.name}}" , "ping":"{{player.latency}}","team":"{{player.team.name}}","points":"{{player.kills}}" }
		{% endfor %}
				]
}
0

https://encrypted.google.com/search?hl=en&q=python+json+library - użyj czegoś, nie próbuj wynajdywać koła od nowa, bo póki co Ci krzywe wychodzi ;)

0

Niestety, ale modyfikowanie skryptu w pythonie nie jest mozliwe. Przeszukiwanie silnika gry niestety odpada.

0

No cóż, skrypt w pythonie generuje wadliwe dane, więc to jego trzeba poprawić. Jak Ci się silnik w samochodzie zepsuje to raczej nie szukasz problemu przy kołach itd.

Dało by się to obejść nie ładując tego jako json tylko tekst, następnie jakimś regexpem dopisać przecinki, następnie parsować ten json, no ale to już dziwne kombinowanie.

0

Nie, nie generuje wadliwych danych. To ja przerobiłem ich sposób wyświetlania z html na json abym mógł ich uzyc w paru skryptach

0

No to skoro przerobiłeś to teraz napraw? Nie ogarniam :/
Generuje wadliwy JSON, to fakt, któremu nie możesz zaprzeczyć..

0

jedyne co trzeba zrobic to mała przeróbka tak aby ostatni przejście for'a kończyło się bez wstawianiem przecinka na końcu

0

pasuje jeszcze przerobka zeby w ogole ten przecinek sie wstawial

btw: "modyfikowanie skryptu w pythonie nie jest mozliwe" - to jednak można?

0

Troszkę się z tym meczyłem, ale mi sie udało. Tak teraz wyglądają dane.

{ "name":"Serwer AoS TCB", "online":"3", "slots":"10", "players": [ { "nick":"MaxyBlack" , "ping":"40","team":"POZ","points":"0" } ,{ "nick":"Kaspii" , "ping":"54","team":"POZ","points":"0" } ,{ "nick":"FireDast" , "ping":"300","team":"FOL","points":"31" } ] }

To teraz wracam do głównego pytania, jak wyswietlić ta tablice :/

0

Twój przykład działa z tym jsonem przecież

0

No właśnie teraz coś mi nie chce działać. Sprawdziłem co otrzymuje w Firebugu

<?xml version="1.0" encoding="ISO-8859-1"?>


{
    "name":"Serwer AoS TCB",
    "online":"1",
    "slots":"10",
	"players": [
	
	
		
		{ "nick":"MaxyBlack" , "ping":"37","team":"FOL","points":"0" }
		
		
		
				]
}


edit

Ok, juz działa. Dzieki za pomoc.

edit 2

Efekt mojej pracy

http://biura-adaptacyjne.pl/test.html

1 użytkowników online, w tym zalogowanych: 0, gości: 1