Java - tableau Extrait de chaîne JSON et convertir au format JSON

Jawad-Dev:

J'ai une chaîne JSON comme ci-dessous:

"{ \"password\":\"des123\",\"ROU_DATA\":[{\"FORM_RECEIVING_TIME\":\"12:00:00\",\"REMARKS\":\"Redemption of Unit\"}, {\"FORM_RECEIVING_TIME\":\"13:00:00\",\"REMARKS\":\"sALE of Unit\"}] }";

Maintenant, je veux extraire le tableau à partir et ont besoin de l'utiliser comme une classe POJO séparée afin que je puisse itérer sur chaque valeur ..

Maintenant, le problème est, lorsque je tente de convertir la chaîne complète de carte et obtenir la valeur Array de la carte .. Il transforme son format en format carte comme:

{FORM_RECEIVING_DATE = 12:00:00, etc ..}

Cependant chaîne JSON doit être { "FORM_RECEIVING_DATE": "12:00:00", etc ..}

en raison du format de schématiser son qui me permet maintenant d'analyser à l'aide de ma classe POJO ..

S'il vous plaît aider à convertir à mon JSONFormat ...

** NOTE: Note S'il vous plaît que je ne peux pas utiliser Jackson **.

CLASSE A

            ObjectMapper mapper2 = new ObjectMapper();

            Map<String, Object> map;

            map = mapper2.readValue(json, new TypeReference<Map<String, Object>>(){});

            System.out.println("map: " + map.get("ROU_DATA") );


            String array = map.get("ROU_DATA").toString();

            String json2 = new ObjectMapper().writeValueAsString(array.replace("[", "").replace("]", ""));
            String json3 = new ObjectMapper().writeValueAsString(json2);
            System.out.println("json2>>" + json2);
            System.out.println("json2>>" + json3);
            mapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);
            // 1. convert JSON array to Array objects


            ROU[] pp1 = mapper.readValue("{" + array.replace("=", ":") + "}", ROU[].class);


            for (ROU person : pp1) {
                System.out.println(person.getRemarks());
            }

CLASSE B

import com.fasterxml.jackson.annotation.JsonProperty;

public class ROU {

    @JsonProperty("FORM_RECEIVING_TIME")
    private String formdate;

    @JsonProperty("REMARKS")
    private String remarks;

    public String getFormdate() {
        return formdate;
    }

    public void setFormdate(String formdate) {
        this.formdate = formdate;
    }

    public String getRemarks() {
        return remarks;
    }

    public void setRemarks(String remarks) {
        this.remarks = remarks;
    }



}

Andreas:

map.get("ROU_DATA")retourne un Listobjet et la toString()méthode de Listne pas lire le texte JSON.

Vous n'êtes pas obligé de reconvertir un texte JSON juste pour obtenir le ROU[]créé, il suffit d' appeler convertValue(...).

String input = "{ \"password\":\"des123\",\"ROU_DATA\":[{\"FORM_RECEIVING_TIME\":\"12:00:00\",\"REMARKS\":\"Redemption of Unit\"}, {\"FORM_RECEIVING_TIME\":\"13:00:00\",\"REMARKS\":\"sALE of Unit\"}] }";

ObjectMapper mapper2 = new ObjectMapper();
Map<?, ?> json = mapper2.readValue(input, Map.class);
ROU[] pp1 = mapper2.convertValue(json.get("ROU_DATA"), ROU[].class);

for (ROU person : pp1)
    System.out.println(person.getRemarks());

Production

Redemption of Unit
sALE of Unit

Je suppose que tu aimes

Origine http://43.154.161.224:23101/article/api/json?id=367296&siteId=1
conseillé
Classement