[英]Manipulate ArrayNode to be used as JsonBuilder parameter in Groovy
我正在嘗試執行從服務器站點檢索一組信息的編排,並且我想操縱 output 以便僅獲取必要的數據。
輸出的操作菜單,允許我通過 Groovy 編碼來處理它。
沒有操作的 output 會拋出 JSON ,如下所示:
{
"formId": "P43081_W43081A",
"gridId": "1",
"title": "Work With Orders Awaiting Approval",
"rowset": [
{
"P43081_AN8_Originator": "304565",
"P43081_DL01_Supplier": "I.T. Laptop/Tablets",
"P43081_AN8_Supplier": "533104",
},
{
"P43081_AN8_Originator": "304565",
"P43081_DL01_Supplier": "I.T. Laptop/Tablets",
"P43081_AN8_Supplier": "533104",
},
{
"P43081_AN8_Originator": "304565",
"P43081_DL01_Supplier": "Office Plus Supplies",
"P43081_AN8_Supplier": "533103",
}
],
"records": 3,
"moreRecords": false
}
我只需要行集級別的信息。 為了做到這一點,我操縱了 output 包括以下代碼:
import groovy.json.JsonSlurper;
import groovy.json.JsonBuilder;
import com.oracle.e1.common.OrchestrationAttributes;
String main(OrchestrationAttributes orchAttr, String input)
{
def jsonIn = new JsonSlurper().parseText(input);
// modify jsonIn;
def jsonOut = new JsonBuilder(jsonIn.rowset);
// orchAttr.writeWarn("custom log entry - warning");
// orchAttr.writeDebug("custom log entry - debug");
return jsonOut;
}
這給我帶來了以下錯誤:
“消息”:“com.fasterxml.jackson.databind.node.ArrayNode 無法轉換為 com.fasterxml.jackson.databind.databin”
我推斷錯誤原因是因為我將數組 object(行集)而不是 Object 作為 JsonBuilder 參數傳遞。
您知道如何處理 output 並將正確格式的參數傳遞給 JsonBuilder 嗎?
我想得到的 output 是:
{
"P43081_AN8_Originator": "304565",
"P43081_DL01_Supplier": "I.T. Laptop/Tablets",
"P43081_AN8_Supplier": "533104",
},
{
"P43081_AN8_Originator": "304565",
"P43081_DL01_Supplier": "I.T. Laptop/Tablets",
"P43081_AN8_Supplier": "533104",
},
{
"P43081_AN8_Originator": "304565",
"P43081_DL01_Supplier": "Office Plus Supplies",
"P43081_AN8_Supplier": "533103",
}
您可以改用JsonOutput
。 例如
import groovy.json.*
def data = new JsonSlurper().parse("data.json" as File)
println(JsonOutput.toJson(data.rowset));
// ⇒ [{"P43081_AN8_Originator":"304565","P43081_DL01_Supplier":"I.T. Laptop/Tablets","P43081_AN8_Supplier":"533104"},{"P43081_AN8_Originator":"304565","P43081_DL01_Supplier":"I.T. Laptop/Tablets","P43081_AN8_Supplier":"533104"},{"P43081_AN8_Originator":"304565","P43081_DL01_Supplier":"Office Plus Supplies","P43081_AN8_Supplier":"533103"}]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.