我有几个这样的字符串:
string x = "[{\"Name\":\"property1\",\"Value\":true},{\"Name\":\"FOO\",\"Value\":12345ddddeeee},{\"Name\":\"property3\",\"Value\":false}]";
需要删除
"{\"Name\":\"FOO\",\"Value\":12345ddddeeee}"
来自原始字符串。但是,FOO名称+值可以位于字符串中的任何位置。它不一定必须在property1和property3之间。从与x相同格式的通用字符串中删除它的最佳方法是什么?
FOO的价值可能会有所不同
答案 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)),"")