2013-11-10 2 views
0

Я пытаюсь разобрать следующий json-файл.парсинг json в java с символом «-» перед именем атрибута

"ItemData" : [{ 
     "-item" : "A", 
     "id" : "100", 
     "name" : "abc", 
     "description" : "abcd", 
     "category" : "xyz", 
    } 
] 

Я могу разобрать все, кроме первого поля. Его из-за символа «-» в начале. Я попытался использовать @SerializedName ("- item") в моем POJO-файле. Но не работает.

Может ли кто-нибудь сказать мне, как я могу разобрать это поле?

+1

Что вы имеете в виду под " разобрать "? Вы сами писали парсер или используете какую-то существующую библиотеку/API? – isnot2bad

+0

Вы застряли в формате json? u может удалить "-". – ajc

+0

Какой парсер вы используете? – SLaks

ответ

1

Я не знаю, как ваш код выглядит, но @SerializedName("-item"), кажется, работает хорошо для меня

class Data { 
    private List<ItemData> ItemData = new ArrayList<ItemData>(); 

    @Override 
    public String toString() { 
     return "Data [ItemData=" + ItemData + "]"; 
    } 
} 

class ItemData { 

    @SerializedName("-item") 
    private String _item; 

    private String id; 
    private String name; 
    private String description; 
    private String category; 

    @Override 
    public String toString() { 
     return "ItemData [_item=" + _item + ", id=" + id + ", name=" + name 
       + ", description=" + description + ", category=" + category 
       + "]"; 
    } 
} 

Использование

Gson gson = new Gson(); 

String jsonString = "{\r\n" + " \"ItemData\" : [{\r\n" 
     + "   \"-item\" : \"A\",\r\n" + "   \"id\" : \"100\",\r\n" 
     + "   \"name\" : \"abc\",\r\n" 
     + "   \"description\" : \"abcd\",\r\n" 
     + "   \"category\" : \"xyz\"\r\n" + "  }\r\n" + " ]\r\n" 
     + "}\r\n"; 

Data item = gson.fromJson(jsonString, Data.class); 
System.out.println(item); 

Выход

Data [ItemData=[ItemData [_item=A, id=100, name=abc, description=abcd, category=xyz]]] 
          ^^^^^^^ 
+0

Это помогло ... на самом деле, моя проблема заключалась в том, что POJO, который я использовал, расширяет еще один класс POJO .. И получается, что я должен давать @SerializedName («item») в родительском POJO тоже. – user2860516

Смежные вопросы