Подтвердить что ты не робот

Использование gson для десериализации определенного поля JSON объекта

У меня есть следующая строка JSON:

{
    "ms": "images,5160.1",
    "turl": "http://ts1.mm.bing.net/th?id=I4693880201938488&pid=1.1",
    "height": "178",
    "width": "300",
    "imgurl": "http://www.attackingsoccer.com/wp-content/uploads/2011/07/World-Cup-2012-Draw.jpg",
    "offset": "0",
    "t": "World Cup 2014 Qualification – Europe Draw World Cup 2012 Draw ...",
    "w": "719",
    "h": "427",
    "ff": "jpeg",
    "fs": "52",
    "durl": "www.attackingsoccer.com/2011/07/world-cup-2012-qualification-europe...",
    "surl": "http://www.attackingsoccer.com/2011/07/world-cup-2012-qualification-europe-draw/world-cup-2012-draw/",
    "mid": "D9E91A0BA6F9E4C65C82452E2A5604BAC8744F1B",
    "k": "6",
    "ns": "API.images"
}

Мне нужно сохранить значение imgurl в отдельной строке.

Это то, что у меня есть до сих пор, но это просто дает мне всю строку JSON вместо определенного поля imgurl.

Gson gson = new Gson();
Data data = new Data();
data = gson.fromJson(toExtract, Data.class);
System.out.println(data);

toExtract - строка JSON. Вот мой класс данных:

public class Data 
{
    public List<urlString> myurls;
}

class urlString
{
    String imgurl;
}
4b9b3361

Ответ 1

При анализе такой простой структуры нет необходимости иметь выделенные классы.

Решение 1:

Чтобы получить imgurURL из вашей String с помощью gson, вы можете сделать это:

JsonParser parser = new JsonParser();
JsonObject obj = parser.parse(toExtract).getAsJsonObject();
String imgurl = obj.get("imgurl").getAsString();

В этом случае используется синтаксический анализ в JsonObject.

Решение 2:

Кроме того, вы можете извлечь все данные в экземпляр Properties, используя

 properties data = gson.fromJson(toExtract, Properties.class);

и прочитайте свой URL с помощью

String imgurl = data.getProperty("imgurl");