次の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
の値を別の文字列に格納する必要があります。
これは今までのところですが、特定のimgurlフィールドではなく、JSON文字列全体を取得します。
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;
}
このような単純な構造を解析する場合、専用のクラスを用意する必要はありません。
ソリューション1:
Gsonを使用してStringからimgurURLを取得するには、次のようにします。
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");