簡體   English   中英

液體變換——如何保持JSON object字面量不變

[英]Liquid transform - how to retain JSON object literal unchanged

我有 JSON 看起來像這樣:

[
    {
        "Data": {
            "BagData": null,
            "OtherData": {
                "Responses": [
                    "test"
                ]
            }
        }
    },
    {
        "Data": {
            "BagData": {
                "BagWeight": 20.0,
                "ExceededBy": 0.0
            },
            "OtherData": null
        }
    }
]

我正在嘗試使用 Liquid 模板對此進行轉換。 我想簡單地 output JSON object "Data"的文字不變,但使用不同的屬性名稱,以便 output 是:

[
    {
        "MessageDetails": {
            "BagData": null,
            "OtherData": {
                "Responses": [
                    "test"
                ]
            }
        }
    },
    {
        "MessageDetails": {
            "BagData": {
                "BagWeight": 20.0,
                "ExceededBy": 0.0
            },
            "OtherData": null
        }
    }
]

我正在使用以下 Liquid 轉換模板,但它沒有輸出任何內容來代替transaction.Datacontent肯定包含 JSON object 文字的正確數組)

[
    {% for transaction in content %}
      {
        "MessageDetails": {{ transaction.Data }},

      },
    {% endfor %}
]

如何讓 output 的"Data"不變 即使"Data"值的結構發生變化,我也希望它能正常工作。 因此,如果"Data"的值為:

{
  "SomethingCompletelyDifferent": null
}

我仍然希望它出現在 output 中,因此最終的 output 將是:

[
    {
        "MessageDetails" : {
            "SomethingCompletelyDifferent": null
        }
    },
    ...
]

您是否嘗試過進一步分解 JSON 以使其更具體?

{% for transaction in content %}
      {
         "MessageDetails": {
            "BagData": {
                "BagWeight": {{transaction.MessageDetails.BagData.BagWeight}},
                "ExceededBy": {{transaction.MessageDetails.BagData.ExceededBy}}
            },
            "OtherData": {{transaction.MessageDetails.OtherData}}
        }
      },
{% endfor %}

在編寫模板時,我發現您需要具體說明您希望它看起來如何。 寫出每個鍵,然后調用它的值,您也可以按照自己的需要對 JSON 進行模板化。

for 循環映射它收到的每個 object,並將創建您根據 object 模板化的內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM