Wyciąganie danych z zagnieżdżonego jsona java

0

Hey, chiałbym wyciągnąć product_id który znajduje się odpowiednio products->13771584->links->shop_3003183. Zwracam się z pytaniem, jak wyciągnąć tak zagnieżdżoną wartość z jsona?

{
  "status": "SUCCESS",
  "storage_id": null,
  "products": {
    "13771584": {
      "is_bundle": false,
        }
      },
      "stock": {
        "bl_629": 
      },
      "prices": {
        "475": 59
      },
      "locations": {
        "": ""
      },
      "links": {
        "shop_3003183": {
          "product_id": "4",
          "variant_id": "0"
        }
      }
    }
  }
}
3

Osobiście zmapowalbym to na dto w całości i wyciągnął później co tam chcesz. Od biedy możesz zmapowac na Map<String, Object> i te objecty o to będą kolejne mapy

1

Jak nie lubisz mapować to wystarczy JsonPath

0

Okej wszystko ok, ale mam jeszcze pytanie, w obu przypadkach mam problem z parsowaniem mojej odpowiedzi. Otóż ten json przychodzi mi w takiej formie

Response response = client.newCall(request).execute();

I w obu przypadkach jak wykonuje na nim response.toString() to ma problem z parsowaniem tokena

2

No świetnie ale to jest co za libka? Apache HTTP Client? Mamy zgadywać? Szklana kula mówi ze Response ma metodę body (albo coś podobnego) która zwróci ci body requestu. toString prawie nigdy nie jest metodą którą chcesz zawołać, bo jej zadaniem jest printowanie obiektów do logów.

0

Przepraszam za niedopaczenie, OkHttpClient

1

No to dokumentacja mówi że jest https://square.github.io/okhttp/4.x/okhttp/okhttp3/-response/body/ które zwraca https://square.github.io/okhttp/4.x/okhttp/okhttp3/-response-body/ które ma https://square.github.io/okhttp/4.x/okhttp/okhttp3/-response-body/bytes/ i w ten sposób dostajesz payload w postaci bajtów.
Gdzie jest problem?

1 użytkowników online, w tym zalogowanych: 0, gości: 1