我有一個對象數組$arr
,並且一個對象的屬性名爲jsonData
,它包含字符串中的json數據,如何將該字符串解析爲實際的JSON對象並檢索可以說鍵值爲name
的值?我嘗試這樣做:將字符串解析爲JSON
#foreach ($obj in $arr)
#set ($jsonData = "#evaluate(${obj.jsonData})")
$jsonData.get("name") ## <-- not working
#end
我有一個對象數組$arr
,並且一個對象的屬性名爲jsonData
,它包含字符串中的json數據,如何將該字符串解析爲實際的JSON對象並檢索可以說鍵值爲name
的值?我嘗試這樣做:將字符串解析爲JSON
#foreach ($obj in $arr)
#set ($jsonData = "#evaluate(${obj.jsonData})")
$jsonData.get("name") ## <-- not working
#end
固定這樣的:
#foreach ($obj in $arr)
#set($jsonData = '#set($jsonData = ' + $obj.jsonData + ')')
#evaluate ($jsonData)
$jsonData.get("name") ##<-- works now
#end
我用velocity 1.7
如果在AWS API網關利用速度人在這裏結束了,您可以使用AWS」
$ utils.parseJson()將字符串轉換爲JSON。
請確保您注意您的字符串是否使用單引號或雙引號。在解析字符串之前,您可能需要使用$ utils.escapeJavaScipt.replaceAll()。
g.o.a.t,你的回答幾乎是正確的;有一個輕微的錯字,你想使用$util.parseJson()
,而不是$utils.parseJson()
。即便如此,它對我的幫助非常大,所以謝謝。我會評論你的帖子,但我沒有足夠的代表。 :(
這主要是AWS lambda(在python)響應模板相關..所以..如果你想返回自定義響應代碼與JSON很容易返回JSON在節點js但是當談到python按照我知道,我們不能提高字典的值。所以..這可能會有幫助。如果你正在做的一樣..
raise Exception({"responseCode": 400, "response": "missing :\"recipientCount\""})
它會拋出異常的errorMessage中鍵和值作爲一個字符串。
爲了克服這個問題..
添加響應碼400 方法響應
正則表達式中合併響應:
.*'responseCode': 400.*
補充身體映射模板爲應用程序/ JSON:
$util.escapeJavaScript($input.path('$.errorMessage')).replaceAll("\\'",'\"')
確保你是不是在異常字符串中使用單引號。
錯誤:
raise Exception({"responseCode": 400, "response": "missing :'recipientCount'"})
右:
raise Exception({"responseCode": 400, "response": "missing :\"recipientCount\""})
我知道這是不是最好的解決辦法......但是這是唯一的解決方案,我已經找到。如果你有更好的解決方案,請隨意。
這爲我修好了!謝謝! –