0

Li Haoyi の ujson を使用して json 文字列を読み取ろうとしています。これは文字列です:

{
  "dataflows": [
    {
      "name": "test",
      "sources": [
        {
          "name": "person_inputs",
          "path": "/data/input/events/person/*",
          "format": "JSON"
        }
      ],
      "transformations": [
        {
          "name": "validation",
          "type": "validate_fields",
          "params": {
            "input": "person_inputs",
            "validations": [
              {
                "field": "office",
                "validations": [
                  "notEmpty"
                ]
              },
              {
                "field": "age",
                "validations": [
                  "notNull"
                ]
              }
            ]
          }
        },
        {
          "name": "ok_with_date",
          "type": "add_fields",
          "params": {
            "input": "validation_ok",
            "addFields": [
              {
                "name": "dt",
                "function": "current_timestamp"


              }
            ]
          }
        }
      ],
      "sinks": [
        {
          "input": "ok_with_date",
          "name": "raw-ok",
          "paths": [
            "/data/output/events/person"
          ],
          "format": "JSON",
          "saveMode": "OVERWRITE"
        },
        {
          "input": "validation_ko",
          "name": "raw-ko",
          "paths": [
            "/data/output/discards/person"
          ],
          "format": "JSON",
          "saveMode": "OVERWRITE"
        }
      ]
    }
  ]
}

そして、これは私がそれを読んだ方法です:

val j = os.read(os.pwd/RelPath("src/main/scala/metadata.json"))
val jsonData = ujson.read(j)

しかし、戻り値の型はujson.Objであり、期待どおりではなくArr(ArrayBuffer(Obj)、 を取得しようとすると が得jsonData(0)られますjson.Value$InvalidData: Expected ujson.Arr

ujson オブジェクトを使用して upickle オブジェクトを作成しようとしましたが、作成できず、この初期エラーが原因であると思われるため、この質問をしています。

なぜこれが起こるのかについてのアイデアはありますか?どんな助けでも大歓迎です!前もって感謝します!!

4

1 に答える 1

2

JSON の外側の要素は配列ではなく、値が配列である単一の要素を持つオブジェクトdataflowsです。試してみてくださいjsonData("dataflows")(0)

于 2021-07-06T07:21:27.373 に答える