J'ai la chaîne JSON suivante:
{
"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"
}
J'ai besoin de stocker la valeur de imgurl
dans une chaîne distincte.
C'est ce que j'ai jusqu'à présent, mais cela me donne juste la chaîne JSON entière au lieu du champ imgurl spécifique.
Gson gson = new Gson();
Data data = new Data();
data = gson.fromJson(toExtract, Data.class);
System.out.println(data);
toExtract
est la chaîne JSON. Voici ma classe de données:
public class Data
{
public List<urlString> myurls;
}
class urlString
{
String imgurl;
}
Lors de l'analyse d'une structure aussi simple, pas besoin d'avoir des classes dédiées.
Solution 1:
Pour obtenir l'imgurURL de votre chaîne avec gson, vous pouvez faire ceci:
JsonParser parser = new JsonParser();
JsonObject obj = parser.parse(toExtract).getAsJsonObject();
String imgurl = obj.get("imgurl").getAsString();
Cela utilise une analyse brute dans un JsonObject .
Solution 2:
Vous pouvez également extraire l'intégralité de vos données dans une instance Properties
à l'aide de
Properties data = gson.fromJson(toExtract, Properties.class);
et lisez votre URL avec
String imgurl = data.getProperty("imgurl");