[英]WSO2 EI read json from registry
我有這個 api
<api xmlns="http://ws.apache.org/ns/synapse" name="EosPlaces" context="/eosplaces"><resource methods="GET" uri-template="/comuni">
<inSequence>
<property name="comuni" expression="get-property('registry', 'gov:/eos/common/json/comuni.json')" scope="axis2" type="STRING"/>
<payloadFactory media-type="json">
<format>$1</format>
<args>
<arg evaluator="xml" expression="$ctx:comuni"/>
</args>
</payloadFactory>
<property name="messageType" value="application/json" scope="axis2"/>
<respond/>
</inSequence></resource></api>
這是存儲在注冊表中的 json,媒體類型為 application/json:
{
"comuni": [{
"Denominazione": "Agliè",
"Regione": "Piemonte",
"Provincia": "Torino",
"SiglaProv": "TO",
"Belfiore": "A074"
},
{
"Denominazione": "Airasca",
"Regione": "Piemonte",
"Provincia": "Torino",
"SiglaProv": "TO",
"Belfiore": "A109"
},
{
"Denominazione": "Ala di Stura",
"Regione": "Piemonte",
"Provincia": "Torino",
"SiglaProv": "TO",
"Belfiore": "A117"
},
{
"Denominazione": "Albiano d'Ivrea",
"Regione": "Piemonte",
"Provincia": "Torino",
"SiglaProv": "TO",
"Belfiore": "A157"
},
{
"Denominazione": "Almese",
"Regione": "Piemonte",
"Provincia": "Torino",
"SiglaProv": "TO",
"Belfiore": "A218"
},
{
"Denominazione": "Alpette",
"Regione": "Piemonte",
"Provincia": "Torino",
"SiglaProv": "TO",
"Belfiore": "A221"
},
{
"Denominazione": "Alpignano",
"Regione": "Piemonte",
"Provincia": "Torino",
"SiglaProv": "TO",
"Belfiore": "A222"
},
{
"Denominazione": "Andezeno",
"Regione": "Piemonte",
"Provincia": "Torino",
"SiglaProv": "TO",
"Belfiore": "A275"
},
{
"Denominazione": "Andrate",
"Regione": "Piemonte",
"Provincia": "Torino",
"SiglaProv": "TO",
"Belfiore": "A282"
},
{
"Denominazione": "Angrogna",
"Regione": "Piemonte",
"Provincia": "Torino",
"SiglaProv": "TO",
"Belfiore": "A295"
}
]
}
我想閱讀 json 並在調用 api 時輸出它,但響應是:
<Empty JSON content>
原始文件是:“HTTP/1.1 200 OK Host: 192.168.0.191:8280 Accept-Encoding: gzip,deflate Content-Type: application/json; charset=UTF-8 Date: Wed, 08 Apr 2020 12:00:19 GMT 傳輸編碼:分塊連接:Keep-A1live"
{}
謝謝
更新:如果我記錄從注冊表中選擇 json 的屬性,這就是我在日志中看到的
=
僅當您將注冊表文件的媒體類型設置為 text/plain 時,這才有效。 這是因為當您將其作為 application/json 時,它會以不同的方式對文件進行編碼。
您實際上不需要將其設置為文本/純文本,但這是完成工作的一種方式。 您可以簡單地添加 base64Decode() 以從 base64 編碼的 json 中取出字符串。
在你的情況下,它看起來像這樣
<property name="comuni" expression="base64Decode(get-property('registry', 'gov:/eos/common/json/comuni.json'))" scope="axis2" type="STRING"/>
好的,現在它運行良好,但 output,即使是有效的 json,也有如下轉義字符:
{
"text": "{\n\t\"comuni\": [{\n\t\t\t\"Denominazione\": \"Agliè\",\n\t\t\t\"Regione\": \"Piemonte\",\n\t\t\t\"Provincia\": \"Torino\",\n\t\t\t\"SiglaProv\": \"TO\",\n\t\t\t\"Belfiore\": \"A074\"\n\t\t},\n\t\t{\n\t\t\t\"Denominazione\": \"Airasca\",\n\t\t\t\"Regione\": \"Piemonte\",\n\t\t\t\"Provincia\": \"Torino\",\n\t\t\t\"SiglaProv\": \"TO\",\n\t\t\t\"Belfiore\": \"A109\"\n\t\t},\n\t\t{\n\t\t\t\"Denominazione\": \"Ala di Stura\",\n\t\t\t\"Regione\": \"Piemonte\",\n\t\t\t\"Provincia\": \"Torino\",\n\t\t\t\"SiglaProv\": \"TO\",\n\t\t\t\"Belfiore\": \"A117\"\n\t\t},\n\t\t{\n\t\t\t\"Denominazione\": \"Albiano d'Ivrea\",\n\t\t\t\"Regione\": \"Piemonte\",\n\t\t\t\"Provincia\": \"Torino\",\n\t\t\t\"SiglaProv\": \"TO\",\n\t\t\t\"Belfiore\": \"A157\"\n\t\t},\n\t\t{\n\t\t\t\"Denominazione\": \"Almese\",\n\t\t\t\"Regione\": \"Piemonte\",\n\t\t\t\"Provincia\": \"Torino\",\n\t\t\t\"SiglaProv\": \"TO\",\n\t\t\t\"Belfiore\": \"A218\"\n\t\t},\n\t\t{\n\t\t\t\"Denominazione\": \"Alpette\",\n\t\t\t\"Regione\": \"Piemonte\",\n\t\t\t\"Provincia\": \"Torino\",\n\t\t\t\"SiglaProv\": \"TO\",\n\t\t\t\"Belfiore\": \"A221\"\n\t\t},\n\t\t{\n\t\t\t\"Denominazione\": \"Alpignano\",\n\t\t\t\"Regione\": \"Piemonte\",\n\t\t\t\"Provincia\": \"Torino\",\n\t\t\t\"SiglaProv\": \"TO\",\n\t\t\t\"Belfiore\": \"A222\"\n\t\t},\n\t\t{\n\t\t\t\"Denominazione\": \"Andezeno\",\n\t\t\t\"Regione\": \"Piemonte\",\n\t\t\t\"Provincia\": \"Torino\",\n\t\t\t\"SiglaProv\": \"TO\",\n\t\t\t\"Belfiore\": \"A275\"\n\t\t},\n\t\t{\n\t\t\t\"Denominazione\": \"Andrate\",\n\t\t\t\"Regione\": \"Piemonte\",\n\t\t\t\"Provincia\": \"Torino\",\n\t\t\t\"SiglaProv\": \"TO\",\n\t\t\t\"Belfiore\": \"A282\"\n\t\t},\n\t\t{\n\t\t\t\"Denominazione\": \"Angrogna\",\n\t\t\t\"Regione\": \"Piemonte\",\n\t\t\t\"Provincia\": \"Torino\",\n\t\t\t\"SiglaProv\": \"TO\",\n\t\t\t\"Belfiore\": \"A295\"\n\t\t}\n\t]\n}"}
我怎么能調整它?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.