0
입력 문자열을 제공하는 API를 사용 중이며 일부 키워드 자동 완성 및 제품 노드를 반환합니다.gson으로 JSON 응답을 비 직렬화하는 데 문제가 발생했습니다.
내 목표는 응답을 역 직렬화하고 사용할 수있는 자동 완성 문자열 목록을 얻는 것입니다. gson을 사용하는 Retrofit 라이브러리로 안드로이드 애플리케이션에서 이것을 구현하려고합니다.
먼저, 내가 가진 응답이 일반적인 JSON 응답인지 확실하지 않습니다. '노드'항목에는 키/값 쌍이 있지만 입력 문자열과 자동 완성 목록에는 사용할 수있는 키가없는 것 같습니다.
["pol",
["polaroid camera",
"polo",
"polo ralph lauren",
"polo ralph lauren men",
"polar heart rate monitor",
"polaroid",
"polo shirt",
"polar watch",
"police scanner",
"polar"],
[{
"nodes": [{
"alias": "electronics",
"name": "Electronics"
},
{
"alias": "electronics-tradein",
"name": "Electronics Trade-In"
}]
},
{
},
{
},
{
},
{
},
{
},
{
},
{
},
{
},
{
}],
[]]
이것은 gson이 비 직렬화하려는 자바 클래스에서 시도한 것입니다. 그러나 gson은 JSON 키와 일치하도록 클래스 변수를 필요로합니다 (Node 클래스에서는 true이지만 나머지는 그렇지 않습니다).
class Response {
String input;
List<String> keywords;
List<Node> nodes;
}
class Node {
String alias;
String name;
}
그래 내가 응답이 해당 형식에 있다면 이상적 일 것이다 것으로 나타났습니다. 나는 API를 호출 할 때마다 응답을 조작하는 것보다 더 우아한 해결책이 있기를 바랬다. – csab
먼저 JSonArray로 구문 분석 한 다음 각 요소를 별도로 처리합니다. 그러나 실제로는 "유효한 json" – Dave