2017-02-13 18 views
-1

В последние часы я работал с REST и Gson. Но теперь я застрял.Gson получает сложные значения массива

У меня есть этот код:

public class Main { 

    OkHttpClient client = new OkHttpClient(); 

    String run(String url) throws IOException { 
     Request request = new Request.Builder() 
       .url(url) 
       .build(); 

     try (Response response = client.newCall(request).execute()) { 
      return response.body().string(); 
     } 
    } 

    public static void main(String[] args) throws IOException { 
     Main example = new Main(); 
     String response = example.run("http://localhost/crud/api.php/contacts/"); 
     System.out.println(response); 

     Gson gson = new Gson(); 
     Contact fetchedContacts = gson.fromJson(response, Contact.class); 

     System.out.println(fetchedContacts.toString()); 

    } 
} 

И мой сервер Apache LOCALHOST вернуть мне этот JSON

{ 
    "contacts": 
    { 
     "columns": 
     [ 
      "id", 
      "name", 
      "email", 
      "tel" 
     ], 
     "records": 
     [ 
      [ 
       1, 
       "Simon", 
       "[email protected]", 
       "911" 
      ], 
      [ 
       2, 
       "Ganter", 
       "[email protected]", 
       "911" 
      ] 
     ] 
    } 
} 

Но объект null. Я теперь этот код не работает. Но как это исправить? Каковы следующие шаги? У меня также есть класс для моих Contacs:

public class Contact { 

    private String name; 
    private String email; 
    private String tel; 

    public Contact(String name, String email, String tel) { 
     this.name = name; 
     this.email = email; 
     this.tel = tel; 
    } 
+0

Ваших потребностей сервера Apache фиксированных, если это ваша модели Gson вы хотите ... –

+1

не будет вам нужно свойство идентификатора? –

ответ

1

Gson хочет это

{"name":"", "email":"", "tel":""} 

Все остальное/дополнительное будет нулевым.

Похоже, вам нужно изучить еще несколько PHP/MySQL или полностью переключиться на веб-структуру, с которой вам удобнее.

Sidenote: Переоборудование будет полезной библиотека Java, как только вы получите API исправлены

+0

Я использовал [crud-php-api] (https://github.com/mevdschee/php-crud-api), какую другую структуру вы можете мне порекомендовать? –

+0

Я бы, вероятно, не использовал библиотеку вообще, или просто прочитал ее документацию ... https://github.com/mevdschee/php-crud-api/blob/master/README.md#list--transform –

+0

wow, Спасибо. Вот в чем смысл! И я посмотрю Дооснащение! –