2013-05-30 22 views
0

我有一个多维JSON数据集,需要替换多个值,以便我可以将我的应用程序加载到Web以进行一些故障排除。这些值需要替换,因为它们是可以识别个人受保护医疗信息的私人记录。我吮吸正则表达式,并且尚未能够有效地做到这一点。什么是要的是,以取代在所描述的以下字段中的():使用正则表达式替换多个值

 
PROV_NAME (Drlastname001, Drfirstname001 with # portion incrementing) 
PAT_NAME (Patlname0001 , Patfname0001 with # portion incrementing) 
PERS_ID, MRN, ENC_ID, FIN, ORD_ID (random # for each) 
HOME_PHONE, CELL_PHONE (random ph #) 
CMT_PRSNL (Stflastn0001 , Stffirstn0001 with # portion incrementing) 

下面是JSON数据集与所述信息的一个样品手动替换。我的实际数据集对于大多数数组[]都有多个项目。我试图在Sublime Text中做到这一点,但我再次吸入正则表达式。我该如何快速做到这一点? PHP,JavaScript,在Sublime Text中?

{ 
"TICKLER_ORDERED": { 
    "PROVIDER": [ 
     { 
      "PROV_NAME": "Drlastname001, Drfirstname001", 
      "PERSON": [ 
       { 
        "PERS_ID": 234213423, 
        "PAT_NAME": "Patlname0001 , Patfname0001", 
        "MRN": "45246", 
        "HOME_PHONE": "984-435-5673", 
        "CELL_PHONE": "745-547-6544", 
        "OLDEST_ORDER": "/Date(2012-01-03T13:34:28.000-04:00)/", 
        "ENCOUNTERS": [ 
         { 
          "ENC_ID": 8854774, 
          "FIN": "78787457", 
          "ORDERS": [ 
           { 
            "ORD_ID": 23423413, 
            "ORD_NAME": "MA Digital Diagnostic Mammo-Bil/CAD", 
            "ORD_TYPE": "Radiology", 
            "ORD_STATUS": "Canceled", 
            "ORD_PRIORITY": "Routine", 
            "ORD_DATE": "01/03/2012 13:34", 
            "DUE_DATE": "01/06/2012 13:00", 
            "COMMENTS": [ 
             { 
              "CMT_DISP": "This is a test", 
              "SEQUENCE": "1", 
              "CMT_DTTM": "02/04/13 11:40", 
              "CMT_PRSNL": "Stflastn , Stffirstn" 
             }, 
             { 
              "CMT_DISP": "This isn't a test", 
              "SEQUENCE": "2", 
              "CMT_DTTM": "02/04/13 11:42", 
              "CMT_PRSNL": "Stflastn0001 , Stffirstn0001" 
             } 
            ] 
           }, 
           { 
            "ORD_ID": 123234235, 
            "ORD_NAME": "US Breast Bilateral", 
            "ORD_TYPE": "Radiology", 
            "ORD_STATUS": "Canceled", 
            "ORD_PRIORITY": "Routine", 
            "ORD_DATE": "01/03/2012 13:34", 
            "DUE_DATE": "01/06/2012 14:20", 
            "COMMENTS": [] 
           } 
          ] 
         } 
        ] 
       } 
      ] 
     } 
    ] 
} 

}

+0

我不太确定是否可以增加使用正则表达式的一些替代 – Isaac

+1

使用json_decode和json_encode,更换一次数值的JSON已被改造成一个对象,之后将其转换回JSON。 – adeneo

+0

@Isaac可以,但他们就必须给一个函数作为第二个参数传递给'.replace()',它可以动态地返回内容替换匹配的部分 – Ian

回答

1

PHP提供用于遍历JSON数据的阵列大工具。正如adeneo所建议的那样,json_decode和json_encode可让您将数据从JSON转换为PHP多维数组,然后分别转换回JSON。一旦你有一个PHP数组数据,遍历数组,并使用你的知识结构,简单的正则表达式(像“/ [0-9] {3} $ /”)和计数器变量适当增加指数。

  • 由标点符号编辑6/2/13。
+0

我这样做,它工作得很好。我只是不想编写5级循环。谢谢@adeneo。 –