C# 字符串到对象集合

C# 字符串到对象集合,c#,C#,我有这根绳子 ([{"id":"111","name":"Robocop","cover":"3114188e.jpg"},{"id":"222","name":"Eater","cover":"72dpi.jpg"}]) 还有没有更好的方法转换为对象集合,因为我的蹩脚代码如下所示: var trimer = myString.TrimStart('(', '[').TrimEnd(')', ']'); string[] coll = trimer.Split('{','}'); strin

我有这根绳子

([{"id":"111","name":"Robocop","cover":"3114188e.jpg"},{"id":"222","name":"Eater","cover":"72dpi.jpg"}])
还有没有更好的方法转换为对象集合,因为我的蹩脚代码如下所示:

var trimer = myString.TrimStart('(', '[').TrimEnd(')', ']');
string[] coll = trimer.Split('{','}');

string content = "";
foreach(string i in coll)
{
    if (!string.IsNullOrEmpty(i) && i != "," && i != "")
    {
        content += i + "\r\n";
    }
}
string[] contentData = content.Split(new string[] { "\r\n" }, StringSplitOptions.None);

for (int i = 0; i < contentData.Length - 1; i++)
{
    string book = contentData[i].Replace(',','\t').Replace("\"","");
    string[] info = book.Split(new string[] { "\t" }, StringSplitOptions.None);
    string id = info[0];
    string name = info[1];
    string cover = info[2];
}
var trimer=myString.TrimStart(“(”,“[”).TrimEnd(“),”]);
string[]coll=trimer.Split('{','}');
字符串内容=”;
foreach(coll中的字符串i)
{
如果(!string.IsNullOrEmpty(i)&&i!=”,“&&i!=”)
{
内容+=i+“\r\n”;
}
}
string[]contentData=content.Split(新字符串[]{“\r\n”},StringSplitOptions.None);
for(int i=0;i
是。您实际上有一个JSON字符串。您需要删除括号(如果它们确实存在于收到的字符串中),然后才能正确地对其进行反序列化。此示例使用:

public void反序列化foo()
{
var json=“[{\'id\':\'111\',\'name\':\'Robocop\',\'cover\':\'3114188e.jpg\'”,
{\'id\':\'222\',\'name\':\'Eater\',\'cover\':\'72dpi.jpg\'}];
var foos=JsonConvert.DeserializeObject(json);
foreach(foos中的var foo)
{
WriteLine(“Id:{0}”,foo.Id);
WriteLine(“名称:{0}”,foo.Name);
WriteLine(“Cover:{0}”,foo.Cover);
}
}
公开课Foo
{
[JsonProperty(“id”)]
公共字符串Id{get;set;}
[JsonProperty(“名称”)]
公共字符串名称{get;set;}
[JsonProperty(“封面”)]
公共字符串覆盖{get;set;}
}

这是JSON。尝试搜索“C#parse JSON”。确实是JSON,但必须删除开头和结尾括号
()
。正确的Json事实上,只需使用NewtonSoft Json将内容反序列化为一个对象,该对象为上面字符串中的每个条目提供映射。如果您计划使用WebAPI之类的东西进行请求/响应,那么您无需做任何事情,它会在内部将对象序列化为Json进行响应,反之亦然
public void DeserializeFoo()
{
    var json = "[{\"id\":\"111\",\"name\":\"Robocop\",\"cover\":\"3114188e.jpg\"},
                 {\"id\":\"222\",\"name\":\"Eater\",\"cover\":\"72dpi.jpg\"}]";

    var foos = JsonConvert.DeserializeObject<List<Foo>>(json);
    foreach (var foo in foos)
    {
        Console.WriteLine("Id: {0}", foo.Id);
        Console.WriteLine("Name: {0}", foo.Name);
        Console.WriteLine("Cover: {0}", foo.Cover);
    }
}

public class Foo
{
    [JsonProperty("id")]
    public string Id { get; set; }
    [JsonProperty("name")]
    public string Name { get; set; }
    [JsonProperty("cover")]
    public string Cover { get; set; }
}