0
votes

Convertir JSON String en objets JSON

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"));


7 commentaires

"Train_Journey_Staff [] semble défectueux .. devrait-il être " train_journey_staff ": [] ?


Une simple chaîne JSON à JSON est transformée en utilisant json.parse (myOBJ) . 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: [] 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}, {}]


4 Réponses :


0
votes

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
  },
  {

  }
]


0 commentaires

1
votes

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;
}


0 commentaires

0
votes

Utilisation de la bibliothèque Org.json: xxx

voir Ce


0 commentaires

0
votes

Vous pouvez utiliser jackson em> strud> pour convertir JSON en un objet.L'include la dépendance: xxx pré>

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> xxx pré>

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()); 
            } 
        } 
    } 
} 


0 commentaires