user2860516
user2860516

Reputation: 31

parsing json in java with "-" character before attribute name

i am trying to parse following json file.

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

I am able to parse everything except first field. Its because of "-" character in the beginning. I tried using @SerializedName("-item") in my POJO file. But does not work.

Can anybody tell me how can i parse this field?

Upvotes: 0

Views: 511

Answers (1)

Pshemo
Pshemo

Reputation: 124275

I am not sure how your code looks like but @SerializedName("-item") seems to be working fine for me

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
                + "]";
    }
}

Usage

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);

Output

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

Upvotes: 1

Related Questions