Scala:基于内部值编辑/修改json字符串

Scala:基于内部值编辑/修改json字符串,json,scala,Json,Scala,我有一个json字符串,其结构类似于以下内容: val json : String = { "identifier":{ "id":"1234_567_910", "timestamp":"12:34:56", }, "information":[ {

我有一个json字符串,其结构类似于以下内容:

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第三,努力实现这一点第四,如果你有任何问题,你不能通过谷歌搜索解决,打开一个新的更具体的问题。