gpt4 book ai didi

c# - JavaScriptSerializer.deserialize json string 用逗号分隔到 list

转载 作者:行者123 更新时间:2023-11-30 15:26:40 25 4
gpt4 key购买 nike

我有以下类型

class ToDoElement{


public int id;
public string title;
public string description;
public List<string> tags;
}

我还有一些 json 字符串:

string msg = "{"title":"someTitle", "description":"someDescription", "tags": "tag1, tag2, tag3"}

当我试图通过 JavaScriptSerializer 解析它时:

System.Web.Script.Serialization.JavaScriptSerializer js = new System.Web.Script.Serialization.JavaScriptSerializer ();
ToDoElement o = js.Deserialize<ToDoElement> (msg);

我遇到了异常

"Cannot convert string to List".

我做错了什么?

最佳答案

这个:

"tags": "tag1, tag2, tag3"

不是正确的 JSON 数组,它应该如下所示:

"tags: ["tag1", "tag2", "tag3"]

如果您无法更改 JSON,则需要将其解析为中间对象。我将在此示例中使用 Json.NET:

dynamic intermediateObj = JsonConvert.DeserializeObject<dynamic>(msg); 
ToDoElement = new ToDoElement
{
Title = intermediateObj.title,
Description = intermediateObj.description,
Tags = intermediateObj.tags.Split(',').Select(str => str.Trim())
.ToList();
}

请注意,我还添加了 string.Trim 调用。如果不需要,您可以将其删除。

关于c# - JavaScriptSerializer.deserialize json string 用逗号分隔到 list<string>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28927760/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com