2016-02-25 3 views
0

У меня есть строка JSON, которая имеет данные, как это:Как я могу преобразовать эту JSon строку в мой класс

description: { "en" : "english desc", "es": "spanish description" } 

Это поле находится в моем классе Item, но это строка:

class Item 

private String description; 

Я использую GSON для анализа этого Json. Я получаю ошибку, потому что данные в строке Json не являются строкой. Это объект JSON.

я должен дать параметр языка по умолчанию (еп, например), и он должен быть проанализирован как:

description = "english desc" 

Как я могу это сделать?

ответ

0

Описание должно быть составным объектом, который содержит en и es строковые поля в соответствии с вашей входной строкой. см., Например,

import com.google.gson.Gson; 

public class Demo1 { 

    class Item { 

     Description description; 

     public Description getDescription() { 
      return description; 
     } 

     public void setDescription(Description description) { 
      this.description = description; 
     } 

     @Override 
     public String toString() { 
      return "Item [" + description + "]"; 
     } 

     class Description { 
      String en; 
      String es; 

      public String getEn() { 
       return en; 
      } 

      public void setEn(String en) { 
       this.en = en; 
      } 

      public String getEs() { 
       return es; 
      } 

      public void setEs(String es) { 
       this.es = es; 
      } 

      @Override 
      public String toString() { 
       return "Description [en=" + en + ", es=" + es + "]"; 
      } 

     } 
    } 

    public static void main(final String[] args) { 

     String json = "{ description: { \"en\" : \"english desc\", \"es\": \"spanish description\" } }"; 

     Gson gson = new Gson(); 
     Item i = gson.fromJson(json, Item.class); 
     System.out.println("item:" + i); 
    } 
} 
Смежные вопросы