Sha256: 1fba8fbcbbee214d7405f9def875b6e2d864a2ddf5aa6b741d7ffffcf83d381c

Contents?: true

Size: 767 Bytes

Versions: 4

Compression:

Stored size: 767 Bytes

Contents

package org.embulk.filter.key_in_redis.json

import io.circe._
import io.circe.parser._

object JsonParser {
  def apply(json: String): Map[String, String] = {
    decode[Map[String, Json]](json) match {
      case Right(v: Map[String, Json]) =>
        v.map {
          case (key, innerValue) =>
            val value = innerValue.asString
              .orElse(innerValue.asNumber.map(_.toString))
              .orElse(innerValue.asBoolean.map(_.toString))
              .getOrElse("") // empty.
            if (innerValue.isArray | innerValue.isObject) {
              sys.error(s"not supported json type. key=$key value=$innerValue")
            }
            (key, value)
        }
      case _ =>
        sys.error(s"could not parse json. $json")
    }
  }
}

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
embulk-filter-key_in_redis-0.1.3 src/main/scala/org/embulk/filter/key_in_redis/json/JsonParser.scala
embulk-filter-key_in_redis-0.1.2 src/main/scala/org/embulk/filter/key_in_redis/json/JsonParser.scala
embulk-filter-key_in_redis-0.1.1 src/main/scala/org/embulk/filter/key_in_redis/json/JsonParser.scala
embulk-filter-key_in_redis-0.1.0 src/main/scala/org/embulk/filter/key_in_redis/json/JsonParser.scala