C# 字符串删除 JSON 中的前 2 个对象.字符串化

本文关键字:字符串 对象 删除 JSON | 更新日期: 2023-09-27 17:56:37

我有一个MVC控制器,它接受一个json stringify对象,如下所示:

[{'"name'":'"Name'",'"value'":'"1'"},
 {'"name'":'"Mobile'",'"value'":'"2'"},
 {'"name'":'"Gender'",'"value'":'"Male'"},
 {'"name'":'"Birthdate'",'"value'":'"2016-07-13'"},
 {'"name'":'"Address'",'"value'":'"3'"}]

我想使用 c# 中可用的字符串函数删除前 2 个对象,如下所示:

[{'"name'":'"Gender'",'"value'":'"Male'"},
 {'"name'":'"Birthdate'",'"value'":'"2016-07-13'"},
 {'"name'":'"Address'",'"value'":'"3'"}]`

如何以最简单的方式执行此操作?

C# 字符串删除 JSON 中的前 2 个对象.字符串化

我认为它会起作用。

var jArr =  JArray.Parse(json);
jArr.Descendants().OfType<JProperty>()
              .Where(p => p.Name == "Name" || p.Name == "Mobile")
              .ToList()
              .ForEach(att=>att.Remove());
var newJson = jArr.ToString();

var jType = new[] { new{Gender="", Birthdate="", Address=""} };
var newJson = JsonConvert.SerializeObject(
                     JsonConvert.DeserializeAnonymousType(json, jType));

使用字符串函数,您可以执行以下操作:

string s = "[{'"name'":'"Name'",'"value'":'"1'"}, {'"name'":'"Mobile'",'"value'":'"2'"}, {'"name'":'"Gender'",'"value'":'"Male'"}, {'"name'":'"Birthdate'",'"value'":'"2016-07-13'"}, {'"name'":'"Address'",'"value'":'"3'"}]";
string[] splitted = s.Split('{');
s = s.Replace("{" + splitted[1], "");
s = s.Replace("{" + splitted[2], "");

输出:

[{"name":"Gender","value":"Male"}, 
{"name":"Birthdate","value":"2016-07-13"}, 
{"name":"Address","value":"3"}]