使用自定义分隔符(Groovy)将映射转换为字符串
我有一个JSON:使用自定义分隔符(Groovy)将映射转换为字符串,groovy,Groovy,我有一个JSON: { "order_id" : 1, "order_item" : "PS5", "item_specs" : { "item_price" : "$499", "item_available" : false, "item_description" : "Console&q
{
"order_id" : 1,
"order_item" : "PS5",
"item_specs" : {
"item_price" : "$499",
"item_available" : false,
"item_description" : "Console"
},
"sale_date" : "2020-10-20",
}
我想将json内部的映射转换为带分隔符&
的字符串,并将其放回json,这是另一个参数:
item_specs" : {
"item_price" : "$499",
"item_available" : false,
"item_description" : "Console"
}
在此转换之后,我的JSON应该如下所示:
{
"order_id" : 1,
"order_item" : "PS5",
"item_specs" : {
"item_price" : "$499",
"item_available" : false,
"item_description" : "Console"
},
"items_as_string": "item_price=$499&item_available=false&item_description=Console"
"sale_date" : "2020-10-20",
}
如何使用Groovy?有什么问题?以防万一,您正在了解如何在groovy中使用json:请添加您尝试过的代码以及它是如何失败的(例如错误、堆栈跟踪、日志等),以便我们可以改进它。此外,这看起来更像是查询参数的url编码,这通常意味着不仅仅是连接字符串。我使用
JsonSlurper
解析JSON,然后在其上使用JsonBuilder
,并使用builder.content.item\u as\u string=builder.content.item\u spec.toMapString()
。我一点也不懂groovy。另外,这不是查询参数的url编码。@hsadik可能仍然需要引用。如果键/值包含=
或&
,会发生什么情况?如果键/值包含=或-,则应为无效键或值并应跳过。问题是什么?以防万一,您正在了解如何在groovy中使用json:请添加您尝试过的代码以及它是如何失败的(例如错误、堆栈跟踪、日志等),以便我们可以改进它。此外,这看起来更像是查询参数的url编码,这通常意味着不仅仅是连接字符串。我使用JsonSlurper
解析JSON,然后在其上使用JsonBuilder
,并使用builder.content.item\u as\u string=builder.content.item\u spec.toMapString()
。我一点也不懂groovy。另外,这不是查询参数的url编码。@hsadik可能仍然需要引用。如果键/值包含=
或&
,会发生什么情况?如果键/值包含=或-,则应为无效键或值,并应跳过。
map.collect{ k,v -> k+'='+v }.join('&')