J'ai une chaîne JSON Renvoie:
JsonElement jelement = new JsonParser().parse(response.toString()); JsonArray jarray = jelement.getAsJsonArray(); JsonObject jobject = jarray.get(0).getAsJsonObject(); System.out.println(jobject.get("FIRST_NAME"));
4 Réponses :
Ce que vous avez fondamentalement, c'est:
[ { "TRAIN_JOURNEY_STAFF":[ ], "ID":15, "EMAIL_ADDRESS":"jk@connectedrail.com", "PASSWORD":"test", "FIRST_NAME":"Joe", "LAST_NAME":"Kevin", "DATE_OF_BIRTH":"1996-04-20T00:00:00", "GENDER":"Male", "STAFF_ROLE":"Conductor", "PHOTO":null }, { } ]
Vous pouvez utiliser quelque chose comme ceci:
public class ObjectSerializer { private static ObjectMapper objectMapper; @Autowired public ObjectSerializer(ObjectMapper objectMapper) { ObjectSerializer.objectMapper = objectMapper; } public static <T> T getObject(Object obj, Class<T> class1) { String jsonObj = ""; T userDto = null; try { jsonObj = objectMapper.writeValueAsString(obj); userDto = (T) objectMapper.readValue(jsonObj, class1); System.out.println(jsonObj); } catch (JsonProcessingException jpe) { } catch (IOException e) { e.printStackTrace(); } return userDto; }
Vous pouvez utiliser jackson em> strud> pour convertir JSON en un objet.L'include la dépendance: puis faire une classe de pojo pour stocker Le JSON .La classe de pojo doit refléter la structure de chaîne JSON et disposer de champs appropriés pour cartographier les valeurs (ici dans l'exemple du personnel de code.Class est une classe de pojo) .Ce, en utilisant la classe ObjectMapper, vous pouvez convertir la chaîne JSON en java. Objet comme suit: p> une autre méthode simple forte> pour lire une chaîne JSON et le convertir en un objet est la suivante: p> JSON String: P> {
"lastName":"Smith",
"address":{
"streetAddress":"21 2nd Street",
"city":"New York",
"state":"NY",
"postalCode":10021
},
"age":25,
"phoneNumbers":[
{
"type":"home", "number":"212 555-1234"
},
{
"type":"fax", "number":"212 555-1234"
}
],
"firstName":"John"
}
public class JSONReadExample
{
public static void main(String[] args) throws Exception
{
// parsing file "JSONExample.json"
Object obj = new JSONParser().parse(new FileReader("JSONExample.json"));
// typecasting obj to JSONObject
JSONObject jo = (JSONObject) obj;
// getting firstName and lastName
String firstName = (String) jo.get("firstName");
String lastName = (String) jo.get("lastName");
System.out.println(firstName);
System.out.println(lastName);
// getting age
long age = (long) jo.get("age");
System.out.println(age);
// getting address
Map address = ((Map)jo.get("address"));
// iterating address Map
Iterator<Map.Entry> itr1 = address.entrySet().iterator();
while (itr1.hasNext()) {
Map.Entry pair = itr1.next();
System.out.println(pair.getKey() + " : " + pair.getValue());
}
// getting phoneNumbers
JSONArray ja = (JSONArray) jo.get("phoneNumbers");
// iterating phoneNumbers
Iterator itr2 = ja.iterator();
while (itr2.hasNext())
{
itr1 = ((Map) itr2.next()).entrySet().iterator();
while (itr1.hasNext()) {
Map.Entry pair = itr1.next();
System.out.println(pair.getKey() + " : " + pair.getValue());
}
}
}
}
"Train_Journey_Staff [] semble défectueux .. devrait-il être
" train_journey_staff ": [] code>?
Une simple chaîne JSON à JSON est transformée en utilisant
json.parse (myOBJ) code>. Pas besoin de bibliothèques supplémentaires. Cependant, comme @JackFlamp mentionné, JSON a l'air malformé
Ouais c'est étrange, c'est la réponse que je reçois de la base de données d'un get
Dupliqué possible de gamme d'objets JSON à Java Pojo
Pour analyser JSON en Java, lisez Stackoverflow.com / QUESTIONS / 2591098 / HOW-TO-PAYSE-JSON-IN-JAV A . Mais ce que vous avez n'est pas JSON, donc cela ne vous aidera pas. Vous devriez vous concentrer sur la raison pour déterminer pourquoi ce que vous avez n'est pas JSON au lieu d'essayer de l'analyser.
Donc
"train_journey_staff: [] code> est une clé étrangère, étant renvoyée comme une matrice associative. Donc je ne peux pas le changer
Votre JSON semble invalide. Je pense que cela devrait être comme ça
[{"train_journey_staff": [], "id": 15, "e-mail_address": "jk @ Conne ctedrail.com", "Passw ord": "Test", " First_n ame ":" joe "," last_nam e ":" kevin "," date_of_ naissance ":" 1996-04-20T0 0: 00: 00 "," Genre ":" Homme "," Staff_role " : "Conducteur", "photo": null}, {}] code>