Mi cadena JSON tiene valores anidados.Java JSON -Jackson- Elementos anidados
Algo así como
"[{"listed_count":1720,"status":{"retweet_count":78}}]"
Quiero que el valor de la retweet_count
.
Estoy usando Jackson.
El siguiente código muestra "{retweet_count=78}
" y no 78
. Me pregunto si puedo obtener valores anidados del modo en que PHP lo hace, es decir, status->retweet_count
. Gracias.
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"));
}
}
Eso es de esperar: va; ue of 'status' is a Map is not it is? Solo tienes que llamar a 'get()' una vez más con "retweet_count". Sin embargo, estoy de acuerdo con una de las respuestas que sugiere el uso de 'readTree()' en su lugar, para obtener un 'JsonNode', mucho más fácil de recorrer. – StaxMan