• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Program nie wpisuje/ czyta json

0 głosów
305 wizyt
pytanie zadane 11 grudnia 2017 w Java przez Macek Kolo Mądrala (5,480 p.)

Mam kod:

///client
String data = mEmail + ':' + mPassword; Gson gson = new Gson();
Socket socket = new Socket("10.0.2.2", 9090);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
 
JsonReader reader = new JsonReader(in);
JsonWriter writer = new JsonWriter(out);
 
gson.toJson(data, String.class, writer);
 
 
////////////////////////////server
                    BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                    BufferedWriter out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
 
                    JsonReader reader = new JsonReader(in);
                    JsonWriter writer = new JsonWriter(out);
                    String fromJson = null;
 
                        if (socket.isConnected()){
                            conn = DriverManager.getConnection("jdbc:mysql://localhost/mobilki", "root", "");
                        }
                        fromJson = gson.fromJson(reader, String.class);

jakie mogą być przyczyny, że debuger przechodzi mi tutaj

gson.toJson(data, String.class, writer);

ale po stronie serwera już nie wykona linijki: 
fromJson = gson.fromJson(reader, String.class);

1 odpowiedź

–1 głos
odpowiedź 11 grudnia 2017 przez Wiciorny Ekspert (283,500 p.)
JsonReader reader = new JsonReader(in);
fromJson = gson.fromJson(reader, String.class);

 

Powiedzmy może tak:  reader zwraca obiekt typu json, jednak ty zapisujesz "Reader" jako String.class wymagając tego, jednak to nie może zostać wykonane w sytuacji kiedy reader jest typu: Object 

komentarz 12 grudnia 2017 przez ShiroUmizake Nałogowiec (46,300 p.)
A dynamiczny cast nie da rady?
komentarz 13 grudnia 2017 przez Macek Kolo Mądrala (5,480 p.)
Wystarczyło dodać `writer.flush()`. Dodatkowo nawet w dokumentacji masz przykład jak przesyłają String.

Podobne pytania

+1 głos
1 odpowiedź 1,443 wizyt
pytanie zadane 23 października 2021 w Java przez DzikieHarce Użytkownik (690 p.)
0 głosów
0 odpowiedzi 266 wizyt
pytanie zadane 28 grudnia 2018 w Java przez Piotr Kusnierkiewicz Użytkownik (670 p.)
0 głosów
0 odpowiedzi 206 wizyt
pytanie zadane 27 grudnia 2018 w Java przez Piotr Kusnierkiewicz Użytkownik (670 p.)

93,772 zapytań

142,731 odpowiedzi

323,383 komentarzy

63,375 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...