NO soy desarrollador de Java, pero en este momento estoy escribiendo algunas pruebas con él, y estoy atascado con un problema simple (supongo que es simple para "javaGuys").

En mi clase de prueba, obtengo variables que contienen una cadena que parece OBJETO en JavaScript (me refiero a JSON). Aquí está:

String myStringThatLooksLikeJSON = client.getStartSessionContent();

En modo de depuración, el contenido de esa cadena ...:

myStringThatLooksLikeJSON = "{"context":"blabla","count":0,"value":[{"args":"speech-model","id":"1203"}]}"

Y ahora mi pregunta. ¿Cómo puedo obtener solo el valor de, por ejemplo, "args"?

En JavaScript se puede hacer fácilmente como:

console.log(myStringThatLooksLikeJSON.value[0].args, "args");

Y en mi consola puedo ver speech-model args.

¿Pero cómo hacer eso en Java? ¿Es posible? ¡LA MANERA MÁS PURA COMÚN Y SIMPLE! Por favor, alguien ayude :) Espero haber sido lo suficientemente claro.

1
impregnable fiend 16 feb. 2017 a las 15:11

4 respuestas

La mejor respuesta

O puede usar JSON java package simple

String data = "{\"context\":\"blabla\",\"count\":0,\"value\":[{\"args\":\"speech-model\",\"id\":\"1203\"}]}";
JSONObject d = new JSONObject(data);
System.out.println(d.getJSONArray("value").getJSONObject(0).getString("args"));
5
Bhavik Patel 16 feb. 2017 a las 12:21

Agregue una dependencia de Jackson a su proyecto. Aquí está la dependencia que puede agregar si construye su proyecto con maven.

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.8.6</version>
</dependency>

Cree un objeto que contenga claves de JSON como campos. Con lo siguiente, puede convertir Json en un objeto Java y acceder al archivo que necesita.

ObjectMapper mapper = new ObjectMapper();
SampleClass obj = mapper.readValue(jsonInString, SampleClass.class);
0
AV94 16 feb. 2017 a las 12:19

Debido a que no hay ningún analizador JSON en JDK estándar, debe confiar en bibliotecas externas.

Hay muchos otros

1
fustaki 16 feb. 2017 a las 12:25

Use Gson (o jackson) para analizar su cadena json a un objeto java:

YourClass object=new Gson().fromjson(myStringThatLooksLikeJSON,YourClass.class);

YourClass necesita describir sus campos json.

Consulte análisis JSON usando Gson para Java para acceder directamente al campo deseado

5
Community 23 may. 2017 a las 12:17