需要将以下数据转换为JSON

时间:2019-07-08 21:26:33

标签: json

我有一个代码,正在以以下格式将输出写入文件。

Application-Id : application_xxxx_xxxx
Application-Name : hive-job
Application-Type : MAPREDUCE
User : mapr
Queue : xdev
Start-Time : 1234567
Finish-Time : 1234567
Progress : 0%
State : FAILED
Final-State : FAILED
Tracking-URL : N/A
RPC Port : -1
AM Host : N/A
Aggregate Resource Allocation : 0 MB-seconds, 0 vcore-seconds
Diagnostics : Application rejected by queue placement policy

我需要将以上数据转换为json格式。

1 个答案:

答案 0 :(得分:0)

这是一个解决方案,假设您要创建JSON对象:

jq -Rn '[inputs | capture("(?<key>[^ ]*) : (?<value>.*)") ] | from_entries' input.txt

当然,您可能需要对此进行调整,例如处理尾随的空白等。

jq的一个小优点是,如果产生任何输出,则可以保证输出为有效的JSON。

输出

使用给定的输入,输出将是:

{
  "Application-Id": "application_xxxx_xxxx",
  "Application-Name": "hive-job",
  "Application-Type": "MAPREDUCE",
  "User": "mapr",
  "Queue": "xdev",
  "Start-Time": "1234567",
  "Finish-Time": "1234567",
  "Progress": "0%",
  "State": "FAILED",
  "Final-State": "FAILED",
  "Tracking-URL": "N/A",
  "Port": "-1",
  "Host": "N/A",
  "Allocation": "0 MB-seconds, 0 vcore-seconds",
  "Diagnostics": "Application rejected by queue placement policy"
}
相关问题