Scala:基于内部值编辑/修改json字符串
我有一个json字符串,其结构类似于以下内容:Scala:基于内部值编辑/修改json字符串,json,scala,Json,Scala,我有一个json字符串,其结构类似于以下内容: val json : String = { "identifier":{ "id":"1234_567_910", "timestamp":"12:34:56", }, "information":[ {
val json : String =
{
"identifier":{
"id":"1234_567_910",
"timestamp":"12:34:56",
},
"information":[
{
"fieldName":"test_name",
"fieldId":"test_fieldId",
}
]
}
我想做的是创建一个检查,验证“id”字段是否与结构“Int_Int_Int”匹配,如果不匹配,我想更改值以匹配此预期结构,但我想保持json字符串中的其余信息不变
因此,如果我在json字符串中接收到以下“id”字段,我希望这样更改它们:
"id":"1234_567_910" -> do nothing
"id":"1234" -> "id":"1234_0_0"
"id":"1234_567" -> "id":"1234_567_0"
"id":"1234_???" -> "id":"1234_0_0"
"id":"1234_??_???" -> "id":"1234_0_0"
"id":"1234_foo" -> "id":"1234_0_0"
"id":"1234_567_foo" -> "id":"1234_567_0"
例如:
如果我收到这样的json:
{
"identifier":{
"id":"1234",
"timestamp":"12:34:56",
},
"information":[
{
"fieldName":"test_name",
"fieldId":"test_fieldId",
}
]
}
{
"identifier":{
"id":"1234_0_0",
"timestamp":"12:34:56",
},
"information":[
{
"fieldName":"test_name",
"fieldId":"test_fieldId",
}
]
}
我想对其进行修改,以得到如下json:
{
"identifier":{
"id":"1234",
"timestamp":"12:34:56",
},
"information":[
{
"fieldName":"test_name",
"fieldId":"test_fieldId",
}
]
}
{
"identifier":{
"id":"1234_0_0",
"timestamp":"12:34:56",
},
"information":[
{
"fieldName":"test_name",
"fieldId":"test_fieldId",
}
]
}
在Scala中实现这种json修改的最有效/最干净的方法是什么?下面是如何使用该库完成的 它应该打印:
{
"identifier": {
"id": "1234_0_0",
"timestamp": "12:34:56"
},
"information": [
{
"fieldName": "test_name",
"fieldId": "test_fieldId"
}
]
}
下面是如何使用该库完成的 它应该打印:
{
"identifier": {
"id": "1234_0_0",
"timestamp": "12:34:56"
},
"information": [
{
"fieldName": "test_name",
"fieldId": "test_fieldId"
}
]
}
首先,选择一个json库第二,决定是否要修改json本身(如果选择的库支持),或者首先将其映射到一些case类,然后在普通scala中进行映射,并再次将case类映射到json第三,努力实现这一点第四,如果你有任何问题,你不能通过谷歌搜索解决,打开一个新的更具体的问题。首先,选择一个json库。-第二,决定是否要修改json本身(如果选择的库支持),或者首先将其映射到一些case类,然后在普通scala中进行映射,并再次将case类映射到json第三,努力实现这一点第四,如果你有任何问题,你不能通过谷歌搜索解决,打开一个新的更具体的问题。