首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >scala ujson.read()返回ujson.Obj

scala ujson.read()返回ujson.Obj
EN

Stack Overflow用户
提问于 2021-07-06 06:38:34
回答 1查看 645关注 0票数 0

我正试着用李浩毅的ujson来读json字符串。这是字符串:

代码语言:javascript
复制
{
  "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"
        }
      ]
    }
  ]
}

我就是这么读的:

代码语言:javascript
复制
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对象,但是我做不到,而且我怀疑这是因为这个初始错误。

知道为什么会这样吗?任何帮助都将不胜感激!提前谢谢!!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-06 07:21:27

JSON的外部元素不是数组,而是一个具有单个元素dataflows的对象,其值为数组。试试jsonData("dataflows")(0)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68265672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档