JsonObject to Json records - формат вывода - PullRequest
0 голосов
/ 21 января 2019

Я использую API CryptoCompare, чтобы получить подробную информацию о символах шифрования; выход как ниже с вложенным JSON - мне нужно преобразовать в записи с форматом ниже:

{ "ETH":{ "USD":{ "FROMSYMBOL":"Ξ", "TOSYMBOL":"$", "MARKET":"CryptoCompare Index", "PRICE":"$ 117.74", "LASTUPDATE":"Just now", "LASTVOLUME":"Ξ 0.01000", "LASTVOLUMETO":"$ 1.17", "LASTTRADEID":"44473885", "VOLUMEDAY":"Ξ 340,510.0", "VOLUMEDAYTO":"$ 39,874,960.0", "VOLUME24HOUR":"Ξ 418,836.6", "VOLUME24HOURTO":"$ 49,126,029.4", "OPENDAY":"$ 118.40", "HIGHDAY":"$ 119.29", "LOWDAY":"$ 114.48", "OPEN24HOUR":"$ 117.99", "HIGH24HOUR":"$ 119.50", "LOW24HOUR":"$ 114.12" } } }

Мне нужно сгенерировать вывод, как показано ниже - Отдельная запись для каждого символа: Сопоставление - каждая валюта NODE - добавляется как поле «Sym», например Узел "ETH" теперь называется "Sym": "ETH"; остальные поля являются прямыми от самого внутреннего узла "USD"

{ "Sym":"ETH", "PRICE":"$ 117.74", "LASTTRADEID":"44473885", "VOLUMEDAY":"Ξ 340,510.0", "VOLUMEDAYTO":"$ 39,874,960.0", "VOLUME24HOUR":"Ξ 418,836.6" }

Используемый код:

import com.crypto.cryptocompare.api.CryptoCompareApi
import com.google.gson.Gson
import com.google.gson.GsonBuilder;

object cryptoComapreMultiSCryptoPriceGson extends App{

  val gson = new Gson()
  val api = new CryptoCompareApi();
  //val response = api.priceMulti("ETH,DASH","BTC,USD,EUR", new Nothing() {})

  val m = new java.util.LinkedHashMap[String,Object]
  m.put("extraParams", "TestProject")

  val response = api.priceMultiFull(  //to get priceMultiFull
    "ETH,DASH,BTC",
    "USD",
    m)

    //val jsonRec = gson.toJsonTree(response)
    println(response.get("DISPLAY"))

}

Любые указатели или помощь?

...