ansible将转义的json字符串转换为json

Emmanueledu

我有一个看起来像这样的Ansible输出,但一直努力将其解析为JSON而没有转义的字符串。

{
    "msg": [
        "{",
        "\t\"inprog\" : [",
        "\t\t{",
        "\t\t\t\"desc\" : \"conn174272\",",
        "\t\t\t\"threadId\" : \"139899377280768\",",
        "\t\t\t\"connectionId\" : 174272,",
        "\t\t\t\"client\" : \"127.0.0.1:43365\",",
        "\t\t\t\"active\" : true,",
        "\t\t\t\"opid\" : 35571992,",
        "\t\t\t\"secs_running\" : 0,",
        "\t\t\t\"microsecs_running\" : NumberLong(16),",
        "\t\t\t\"op\" : \"command\",",
        "\t\t\t\"ns\" : \"admin.$cmd\",",
        "\t\t\t\"query\" : {",
        "\t\t\t\t\"currentOp\" : 1",
        "\t\t\t},",
        "\t\t\t\"numYields\" : 0,",
        "\t\t\t\"locks\" : {",
        "\t\t\t\t",
        "\t\t\t},",
        "\t\t\t\"waitingForLock\" : false,",
        "\t\t\t\"lockStats\" : {",
        "\t\t\t\t",
        "\t\t\t}",
        "\t\t}",
        "\t],",
        "\t\"ok\" : 1",
        "}"
    ]
}

理想情况下,输出应类似于以下内容:

{
    "inprog": [
        {
            "desc": "conn5404",
            "threadId": "139922277680896",
            "connectionId": 5404,
            "client": "127.0.0.1:50726",
            "active": true,
            "opid": 225819,
            "secs_running": 0,
            "microsecs_running": NumberLong(20),
            "op": "command",
            "ns": "admin.$cmd",
            "query": {
                "currentOp": 1
            },
            "numYields": 0,
            "locks": {
            },
            "waitingForLock": false,
            "lockStats": {
            }
        }]
}

我已经尝试过JMESPath和Ansible过滤器,但是没有运气。任何提示都会有所帮助。最近尝试是

- name: get ops
  shell:
    cmd: mongo --eval  "db.currentOp()"
  register: currentOp

- debug:
    msg: "{{ currentOp.stdout_lines[2:] | to_json }}"

结果是:

{
    "msg": "[\"{\", \"\\t\\\"inprog\\\" : [\", \"\\t\\t{\", \"\\t\\t\\t\\\"desc\\\" : \\\"conn174318\\\",\", \"\\t\\t\\t\\\"threadId\\\" : \\\"139899381491456\\\",\", \"\\t\\t\\t\\\"connectionId\\\" : 174318,\", \"\\t\\t\\t\\\"client\\\" : \\\"127.0.0.1:43374\\\",\", \"\\t\\t\\t\\\"active\\\" : true,\", \"\\t\\t\\t\\\"opid\\\" : 35579590,\", \"\\t\\t\\t\\\"secs_running\\\" : 0,\", \"\\t\\t\\t\\\"microsecs_running\\\" : NumberLong(15),\", \"\\t\\t\\t\\\"op\\\" : \\\"command\\\",\", \"\\t\\t\\t\\\"ns\\\" : \\\"admin.$cmd\\\",\", \"\\t\\t\\t\\\"query\\\" : {\", \"\\t\\t\\t\\t\\\"currentOp\\\" : 1\", \"\\t\\t\\t},\", \"\\t\\t\\t\\\"numYields\\\" : 0,\", \"\\t\\t\\t\\\"locks\\\" : {\", \"\\t\\t\\t\\t\", \"\\t\\t\\t},\", \"\\t\\t\\t\\\"waitingForLock\\\" : false,\", \"\\t\\t\\t\\\"lockStats\\\" : {\", \"\\t\\t\\t\\t\", \"\\t\\t\\t}\", \"\\t\\t}\", \"\\t],\", \"\\t\\\"ok\\\" : 1\", \"}\"]"
}

这个想法是从输出创建一个新的json数组。例如,[{"secs_running": 123, "opid": 1232342}]

Emmanueledu

mongo --quiet --eval "print(JSON.stringify(db.currentOp()))"由于Mongo shell是一个Javascript交互式shell JSON.stringify,因此神奇地返回了JSON响应,从而解决了该问题

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将JSON字符串转换为C#字典

来自分类Dev

如何安全地将包含转义JSON的字符串转换为有效JSON?

来自分类Dev

将字符串转换为JSON会导致问题

来自分类Dev

将字典字符串字符串转换为json字符串

来自分类Dev

如何将转义的JSON字符串转换为NSString?

来自分类Dev

将无效的JSON字符串转换为JSON

来自分类Dev

将JSON(作为字符串)转换为多维数组

来自分类Dev

将日期字符串转换为JSON日期格式

来自分类Dev

如何将JSON数组转换为字符串..?

来自分类Dev

将c#字符串[]转换为json

来自分类Dev

将arrayList multimap转换为json字符串?

来自分类Dev

将json字符串值转换为数字

来自分类Dev

将JSON字符串转换为Angular函数?

来自分类Dev

将JSON字符串转换为Python字典

来自分类Dev

将错误的JSON字符串转换为JSON数组

来自分类Dev

将HashMap的ArrayList转换为JSON字符串

来自分类Dev

javascript-将字符串转换为json数组

来自分类Dev

将点分隔的字符串转换为JSON对象

来自分类Dev

将哈希图转换为JSON字符串

来自分类Dev

将字符串转换为JSON

来自分类Dev

将JSON字符串转换为JSON数组

来自分类Dev

将字典字符串字符串转换为json字符串

来自分类Dev

将无效的JSON字符串转换为JSON

来自分类Dev

javascript将JSON字符串转换为JSON对象

来自分类Dev

如何将JSON字符串转换为JSON

来自分类Dev

将JSON字符串转换为JSON数组

来自分类Dev

无法将 json 字符串转换为 json 对象

来自分类Dev

使用外壳将 JSON 字符串转换为字典而无需转义

来自分类Dev

Spring - 将 JSON 字符串转换为 JSON 对象

Related 相关文章

热门标签

归档