用正则表达式删除一段字符串(JSON字符串)

时间:2013-01-28 01:09:52

标签: c# regex json

  

可能重复:
  remove strange hidden charecters from my JSON before deserialinzing

我有一些JSON,我需要删除其中的一个元素才能反序列化。

我的系统中有一些不良数据,我需要将其删除,而不是最佳解决方案,但这是紧急情况。

所以我希望从我的JSON中删除一个属性。

以下是一个示例:

{
 "UDF4" : "",
 "ProductID" : 0,
 "Dimensions" : "",
 "weight" : 0,
 "Category" : "",
 "OrderID" : 0,
 "ManufacturerID" : 439,
 "CatalogCode" : "BARB",
 "ItemID" : "BARB13HIV",
 "Description" : "BARB13HIV",
 "BasePrice" : 0,
 "OrderItemID" : 0,
 "Price" : 44,
 "UDF5" : "�65",
 "UDF1" : "13HIV",
 "Qty" : 3,
 "UPC" : "BARB13HIV",
 "DiscountValue" : 0,
 "Cubes" : 0,
 "CatalogName" : "BARBARA COSGROVE LAMPS",
 "UDF2" : "",
 "ItemName" : "13\" Painted parchment ivory",
 "ModifierListID" : 0,
 "UnitOfMeasure" : "",
 "SortOrder" : 36,
 "SubTotal" : 132,
 "PhotoName" : "barb-13hiv",
 "OverrridePrice" : 0,
 "UDF3" : "",
 "AdditionalImageCount" : 0,
 "OrderGUID" : "3DFB932C-2F88-4C44-9417-251EABE1B863",
 "CompleteItemID" : "BARB13HIV",
 "PiecesBox" : 0,
 "SalesRepID" : 0,
 "Source" : "",
 "HasLineItemDiscount" : 0}

我需要删除此字符串的UDF5部分,同时保持JSON不变 - UDF的值是可变的。

1 个答案:

答案 0 :(得分:0)

假设我可以依赖您在上面显示的格式,并且这是正在运行的每个正则表达式中的一个,这可以像

那样简单地完成

([\S\s]*\"])\"UDF5\" : \"[\S\s]*?\",([\S\s]*)

使用后引用$1$2引用UDF5字段之前和之后的部分进行回写。

如果有新行要删除,我现在没有这样做。这可能会更好 - 如果其他人有时间纠正或提供额外的答案。但为了让你得到紧急救援,我希望这会有所帮助。