我写这个问题好几个小时了.

我在想,我可能需要使用Jolt Transformer处理器来完成这项工作.

例如,数据库列中名为"A"的单个条目在varchar字段中包含此值. "Alabama","Ohio","Texas","Missouri"

同样,上面的值是列"A"中的1个条目.

数据需要填充一个名为"STATES"的Solr Index字段.

目前我有一个ExecuteSQLRecord pull 数据库数据,而JsonRecordSetWriter代表Record Writer.这个处理器连接到我的PutSolrContent Stream.

问题似乎是A列的数据总是用引号"括起来",而已经在该字段中的所有数据都被转义.

我如何覆盖它才能手动设置要使用的报价?

按照现在的工作方式,从查询调用发送到Solr的数据如下所示.

[
 {
  "STATES": "\"Alabama\",\"Ohio\",\"Texas\",\"Missouri\""
 }
]

或者其他一些try ,看看我能把它输出成什么样子

"STATES": "Alabama,Ohio,Texas,Missouri"
"STATES": "'Alabama','Ohio','Texas','Missouri'"

我需要的是输出为 打电话.

[
 {
  "STATES": ["Alabama","Ohio","Texas","Missouri"]
 }
]

Would the Jolt Transformer be the solution

我在Jolt中看到的例子很简单,其中一个特定值发生了变化,比如STATES变成了"MY_STATES".但我现在不知道如何将

"STATES": "Alabama,Ohio,Texas,Missouri"

"STATES": ["Alabama","Ohio","Texas","Missouri"]

推荐答案

您只需在modify-overwrite-beta转换中使用100函数,如

[
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "STATES": "=split(',',@(1,&))"  // & stands for the current level attribute
    }
  }
]

对于输入

{
  "STATES": "Alabama,Ohio,Texas,Missouri"
}

您可以在切换下图中所示的ADVANCED选项卡后,通过将SpecificationInput放入盒中进行测试:

enter image description here

Json相关问答推荐

jq不会为空输入返回非零

使用JSONata将具有相同键的字典合并

使用json_query更新事实

如何避免解析 ISuperObject 类型字段中的 json 对象

XSLT 3.0 Json-to-xml,json 包含 html struct

使用 jq 获取所有嵌套键和值

如何将该 JSON 解析为 Kotlin 类?

JOLT 在 struct 体中间添加一个 JSON 字段

jq:来自嵌套 JSON 的映射

流导入错误:重新上传时不存在布局释放 UUID

JOLT 转换 - 删除 JSON 数组中的空 node

如何在 onClick 事件处理程序中识别在同一 map 上绘制的多个多边形中的哪个(使用 react-leaflet)被单击?

如何在 Go 中生成带有排序键的 JSON?

如何从 HttpClient 解析 JSON 字符串?

如何使用 C# 将 JSON 文本转换为对象

JSON 到 JSON 转换器

TypeError: b'1' 不是 JSON 可序列化的

YAML 将 5e-6 加载为字符串而不是数字

NSURLRequest 中不支持的 URL

添加json文件注释