从字符串中删除子字符串的最佳方法

时间:2016-01-26 23:28:37

标签: c# string

我有几个这样的字符串:

 string x = "[{\"Name\":\"property1\",\"Value\":true},{\"Name\":\"FOO\",\"Value\":12345ddddeeee},{\"Name\":\"property3\",\"Value\":false}]";

需要删除

"{\"Name\":\"FOO\",\"Value\":12345ddddeeee}"

来自原始字符串。但是,FOO名称+值可以位于字符串中的任何位置。它不一定必须在property1和property3之间。从与x相同格式的通用字符串中删除它的最佳方法是什么?

FOO的价值可能会有所不同

2 个答案:

答案 0 :(得分:0)

请验证并修复您的json。您可以使用jsonlint

之类的内容

如果您可以自己解析字符串并搜索可能是最佳方式的名称FOO。但是你必须处理所有与解析相关的任务,例如json字符串中不必要的空格。

如果这个string x不是太大(我留给你做分析以确定你的程序有多大),那么我建议将string反序列化为{{ 1}},删除不必要的数据和序列化可能很容易。请参阅下面给出的示例代码您需要调用List方法来完成任务。请注意,您必须根据需要更新此信息。

ParseString()

答案 1 :(得分:0)

我想出了办法:

string tobesearched = "{\"Name\":\"FOO\",\"Value\":";
string k = x.Substring(x.IndexOf(tobesearched));

string final = x.Replace(x.Substring(x.IndexOf(tobesearched), x.IndexOf(tobesearched) + k.IndexOf("}") - x.IndexOf(tobesearched)),"")
相关问题