如何用所需的子字符串替换 JSon 字符串的子字符串
How To Replace SubString Of JSon String With Required Substring
以下字符串包含 JSon 已解析的字符串。
string myJSonString="{ \"_id\" : { \"$oid\" : \"54f6b062036de221c00f5540\" }, \"account\" : \"Acc1\", \"accuser\" : \"\", \"curstatus\" : \"booked\" }";
string oldString=" { \"$oid\" :";
string newString="";
我正在使用以下代码使用正则表达式替换子字符串,但它不起作用;
string result = Regex.Replace(myJSonString, oldString, newString, RegexOptions.IgnoreCase);
第二次替换
string oldStrin="}, \"account\"";
string newString=", \"account\"";
string finalResult = Regex.Replace(result , oldString2, newString2, RegexOptions.IgnoreCase);
此代码对我不起作用;
您的版本可能无法正常工作,因为 $
是正则表达式中的一个特殊字符 - 它是 anchor,表示行尾或行尾字符串,因此需要使用 \
.
进行转义
话虽如此,与其将 ID 前后的部分替换为空,不如构造一个正则表达式来查找整个部分并仅将其替换为内部 ID:
string pattern = "{ \"\$oid\" : (\"[a-z0-9]+\") }";
string myJSonString = "{ \"_id\" : { \"$oid\" : \"54f6b062036de221c00f5540\" }, \"account\" : \"Acc1\", \"accuser\" : \"\", \"curstatus\" : \"booked\" }";
string finalResult = Regex.Replace(myJSonString, pattern, "");
如果它真的像您的示例一样简单,我会使用常规字符串替换,我发现这更容易理解:
string myJSonString="{ \"_id\" : { \"$oid\" : \"54f6b062036de221c00f5540\" }, \"account\" : \"Acc1\", \"accuser\" : \"\", \"curstatus\" : \"booked\" }";
string result = myJSonString.Replace(" { \"$oid\" :", "").Replace("}, \"account\"", ", \"account\"");
//{ "_id" : "54f6b062036de221c00f5540" , "account" : "Acc1", "accuser" : "", "curstatus" : "booked" }
以下字符串包含 JSon 已解析的字符串。
string myJSonString="{ \"_id\" : { \"$oid\" : \"54f6b062036de221c00f5540\" }, \"account\" : \"Acc1\", \"accuser\" : \"\", \"curstatus\" : \"booked\" }";
string oldString=" { \"$oid\" :";
string newString="";
我正在使用以下代码使用正则表达式替换子字符串,但它不起作用;
string result = Regex.Replace(myJSonString, oldString, newString, RegexOptions.IgnoreCase);
第二次替换
string oldStrin="}, \"account\"";
string newString=", \"account\"";
string finalResult = Regex.Replace(result , oldString2, newString2, RegexOptions.IgnoreCase);
此代码对我不起作用;
您的版本可能无法正常工作,因为 $
是正则表达式中的一个特殊字符 - 它是 anchor,表示行尾或行尾字符串,因此需要使用 \
.
话虽如此,与其将 ID 前后的部分替换为空,不如构造一个正则表达式来查找整个部分并仅将其替换为内部 ID:
string pattern = "{ \"\$oid\" : (\"[a-z0-9]+\") }";
string myJSonString = "{ \"_id\" : { \"$oid\" : \"54f6b062036de221c00f5540\" }, \"account\" : \"Acc1\", \"accuser\" : \"\", \"curstatus\" : \"booked\" }";
string finalResult = Regex.Replace(myJSonString, pattern, "");
如果它真的像您的示例一样简单,我会使用常规字符串替换,我发现这更容易理解:
string myJSonString="{ \"_id\" : { \"$oid\" : \"54f6b062036de221c00f5540\" }, \"account\" : \"Acc1\", \"accuser\" : \"\", \"curstatus\" : \"booked\" }";
string result = myJSonString.Replace(" { \"$oid\" :", "").Replace("}, \"account\"", ", \"account\"");
//{ "_id" : "54f6b062036de221c00f5540" , "account" : "Acc1", "accuser" : "", "curstatus" : "booked" }