반응형
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
다른 문자열로.
지금까지 가지고 있던 것은 이것뿐입니다만, 이것은 특정 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:
imgur를 얻기 위해gson을 사용하여 String의 URL을 다음과 같이 설정할 수 있습니다.
JsonParser parser = new JsonParser();
JsonObject obj = parser.parse(toExtract).getAsJsonObject();
String imgurl = obj.get("imgurl").getAsString();
그러면 Json Object에 대한 원시 파싱이 사용됩니다.
솔루션 2:
또는 전체 데이터를 추출할 수 있습니다.Properties
인스턴스 사용
Properties data = gson.fromJson(toExtract, Properties.class);
다음 URL을 읽습니다.
String imgurl = data.getProperty("imgurl");
언급URL : https://stackoverflow.com/questions/11428329/using-gson-to-deserialize-specific-json-field-of-an-object
반응형
'programing' 카테고리의 다른 글
ng-timeout 디렉티브는 (키, 값)을 사용할 때 데이터를 정렬합니다. (0) | 2023.03.23 |
---|---|
.py 파일의 MIME 유형은 무엇입니까? (0) | 2023.03.23 |
c#을 사용한 일반적인 Json 평탄화 (0) | 2023.03.18 |
Angular를 사용하여 해결된 약속 즉시 반환JS (0) | 2023.03.18 |
$location을 사용합니다.search(): 늘일 때 URL에서 파라미터를 삭제하는 방법 (0) | 2023.03.18 |