Neues Objekt aus List<JsonObject> mit Stream

Hallo,

ich versuche gerade eine vorhandene JsonStruktur mit stream zu verarbeiten. Ich habe dafür die JsonObjekt in eine Liste definiert. (List<JsonObjekt>)

Mein Json sieht so aus:
Code:
{
   "anzahl_produkt":"5",
   "list_produkte":[
      {
         "produkt_nummer":"1",
         "produkt_name":"schuh"
      },
      {
         "produkt_nummer":"2",
         "produkt_name":"hose"
      }
   ]
}
Nun möchte ich aus dem Json ein neues Objekt anlegen dafür brauch ich aber folgende Struktur "produkt_name","anzahl_produkt".

Bsp.:
Java:
List<Auflistung> tesst = this.ljsobj.stream()
                .filter(jsobj -> jsobj.has("anzahl_produkt"))
                .filter(jsobj -> !jsobj.get("anzahl_produkt").getAsString().equals("0"))
                .filter(jsobj -> jsobj.has("list_produkte"))
                .map(jsobj -> jsobj.get("list_produkte").getAsJsonArray())
                .filter(jsar -> jsar.size() > 0)
                .map(jsar -> jsar.get(0).getAsJsonObject())
                .filter(jsobj -> jsobj.has("produkt_name"))
                .map(jsobj -> new Auflistung(
                jsobj.get("produkt_name").getAsString(),
                 //hier benötige ich jetzt noch "anzahl_produkt"
                )
                .collect(Collectors.toList());

hat jemand einen Tipp wie ich das vielleicht mit stream umsetzen kann?

Grüße

Gerald
 
Zuletzt bearbeitet von einem Moderator:
Zum Verarbeiten vom JSON nutzen wir GSON.

Rauskommen soll eigentlich kein neues JSON, sondern ich möchte nur ein Klassen-Objekt mit den Werten aus dem JSON erzeugen.

das benötigte JSON würde aber wie folgt aussehen:

Code:
{
   [
      {
              "anzahl_produkte": "5",
              "produkt_name":"schuh"
       },
      {
              "anzahl_produkte": "5",
              "produkt_name":"hose"
       }
   ]
}


hier die Klasse:
Code:
public class auflistung
{
          private String str_produktname;
          private String str_produktanzahl;

         public auflistung(String str_produktname, str_produktanzahl)
       {
           this.str_produktname = str_produktname;
           this.str_produktanzahl = str_produktanzahl;
       }

       //hier folgen getter und setter Methoden
}
 

Zurück
Oben