我想要创建一个json字符串,它包含具有以下结构的长值列表:{"document_ids":23461504,20639162,20395579}
我用下面的行解决了这个问题,但是我觉得我可以用一个更干净的命令(string.Format)来解决这个问题。
var json = "{\"document_ids\":" + JsonConvert.SerializeObject(My List<long>) + "}";但是,我用string.Format编写的命令提供了一个错误消息。
var json = string.Format("{\"document_ids\":{0}}", JsonConvert.SerializeObject(My List<long>));我收到了这条错误信息。System.FormatException:“输入字符串格式不正确。”
发布于 2022-11-30 07:11:08
可以序列化具有这样一个document_ids属性的匿名对象。
var numbers = new List<long> { 23461504, 20639162, 20395579 };
var json = JsonConvert.SerializeObject(
new
{
document_ids = numbers
});发布于 2022-11-30 07:06:18
不要手动组装json字符串。已经有一些有用的类可以为您最大程度地发挥作用。例如,只需使用System.Text.Json.JsonSerializer类即可。
一个完整的例子是:
internal class Program
{
static void Main( string[] args )
{
var myData = new MyData()
{
MyListOfLongs = new List<long>() { 23461504, 20639162, 20395579 }
};
var jsonString = JsonSerializer.Serialize( myData, new JsonSerializerOptions() { WriteIndented = true } );
}
}
public class MyData
{
[JsonPropertyName( "document_ids" )]
public List<long> MyListOfLongs
{ get; set; }
}变量jsonString包含所需的json字符串^^。
如果您想再次反序列化字符串,请再次查看类System.Text.Json.JsonSerializer .它还包含一个Deserialize方法。
https://stackoverflow.com/questions/74623636
复制相似问题