Mój ciąg JSON ma zagnieżdżone wartości.Java JSON-Jackson-Nested Elements
Coś
"[{"listed_count":1720,"status":{"retweet_count":78}}]"
Chcę wartość retweet_count
.
Używam Jackson.
Poniższy kod wyświetla "{retweet_count=78}
", a nie 78
. Zastanawiam się, czy mogę uzyskać wartości zagnieżdżone w sposób, w jaki PHP to robi, tj. status->retweet_count
. Dzięki.
import java.io.IOException;
import java.util.List;
import java.util.Map;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.type.TypeReference;
public class tests {
public static void main(String [] args) throws IOException{
ObjectMapper mapper = new ObjectMapper();
List <Map<String, Object>> fwers = mapper.readValue("[{\"listed_count\":1720,\"status\":{\"retweet_count\":78}}]]", new TypeReference<List <Map<String, Object>>>() {});
System.out.println(fwers.get(0).get("status"));
}
}
Należy się spodziewać: va; ue "statusu" to mapa, prawda? Musisz tylko wywołać "get()" jeszcze raz z "retweet_count". Jednak zgadzam się z jedną z odpowiedzi, która sugeruje użycie 'readTree()' zamiast tego, aby uzyskać 'JsonNode' - o wiele łatwiejszy do przemierzania. – StaxMan