-2

重複の可能性:
デシリアライズする前に、JSON から奇妙な隠し文字を削除する

いくつかの JSON があり、デシリアライズする前に要素の 1 つを削除する必要があります。

システムに悪いデータが入ってきて、それを取り除く必要があります。最善の解決策ではありませんが、これは緊急事態です。

そのため、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}

JSON をそのまま残しながら、この文字列の UDF5 部分を削除する必要があります。UDF の値は変数です。

4

1 に答える 1

0

あなたが上に示したフォーマットに頼ることができ、それが実行されている正規表現ごとにこれらの1つであると仮定すると、これは次のようなものと同じくらい簡単に達成できます

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

$1$2UDF5 フィールドの前後の部分を参照する後方参照を使用して書き戻す。

削除する改行がある場合、私は今それを行っていません。これはより良い可能性があります-他の誰かが修正または追加の回答を提供する時間があれば。しかし、緊急の修正を得るために、これが役立つことを願っています.

于 2013-01-28T01:19:04.113 に答える