如何使用C#和json.net将存储在C#字典中的数据序列化为json对象?
我有一些存储在C#字典中的数据。现在我想将这个字典对象序列化为我在下面指定的json格式 这是我的C#代码: 但我需要的格式是:如何使用C#和json.net将存储在C#字典中的数据序列化为json对象?,c#,asp.net,json,.net-4.0,json.net,C#,Asp.net,Json,.net 4.0,Json.net,我有一些存储在C#字典中的数据。现在我想将这个字典对象序列化为我在下面指定的json格式 这是我的C#代码: 但我需要的格式是: { GetQuestions:[ { "s1":"Q1,Q2", "s2":"Q3,Q4", "s3":"Q5,Q6", }] } 生成的输出中需要的更新是…(关于我所需的格式) 我不需要双重报价的问题 我想创建getQuestions作为数组对象 反序列化(如果需要) StudInfo=JsonConvert.Deserialize
{
GetQuestions:[
{
"s1":"Q1,Q2",
"s2":"Q3,Q4",
"s3":"Q5,Q6",
}]
}
生成的输出中需要的更新是…(关于我所需的格式)
StudInfo=JsonConvert.Deserialize(serializedString);
这将使用泛型和运行时安全性将其转换回StudInfo对象
改变
Public Dictionary
到Public List
将在序列化后强制将其放入数组中
反序列化(如果需要)
StudInfo=JsonConvert.Deserialize(serializedString);
这将使用泛型和运行时安全性将其转换回StudInfo对象
改变
Public Dictionary
到Public List
将在序列化后强制将其放入数组。令人恼火的是,我发现Json.NET在将对象封装到数组中时有点挑剔,有时只封装一个对象,有时不封装。但是,如果存在多个问题,则始终会进行包装。您的代码生成了以下输出{“GetQuestions”:{“GetQuestions”:{“s1”:“Q1,Q2”,“s2”:“Q1,Q3”,“s3”:“Q4,Q5”}}}}}}}}whoops删除匿名对象部分:string serializedString=JsonConvert.Serialize(studDetails);是的,我只是放了你的行…但是JsonConvert中没有名为Serialize的方法。所以我修改了字符串jsonString=JsonConvert.SerializeObject(new{GetQuestions=studDetails},Formatting.Indented);在我的问题中提到的源代码中,我知道,我不认为可以从键中删除双引号,这一点应该毫不重要,因为任何值得一试的json序列化程序都会找到它,就像将它变成数组一样,将您的对象更改为列表,使其成为一个数组。我发现Json.NET在将对象包装为数组时并不十分挑剔,有时只使用一个对象包装,有时不使用。但是,如果存在多个问题,则始终会进行包装。您的代码生成了以下输出{“GetQuestions”:{“GetQuestions”:{“s1”:“Q1,Q2”,“s2”:“Q1,Q3”,“s3”:“Q4,Q5”}}}}}}}}whoops删除匿名对象部分:string serializedString=JsonConvert.Serialize(studDetails);是的,我只是放了你的行…但是JsonConvert中没有名为Serialize的方法。所以我修改了字符串jsonString=JsonConvert.SerializeObject(new{GetQuestions=studDetails},Formatting.Indented);在我的问题中提到的源代码中,我明白了,我不认为可以从键中删除双引号,这一点应该毫不重要,因为任何值得使用的json序列化程序都会找到它,至于将其设置为数组,请将对象更改为将其设置为数组的列表
{
"GetQuestions": {
"s1": "Q1,Q2",
"s2": "Q1,Q3",
"s3": "Q4,Q5"
}
}
{
GetQuestions:[
{
"s1":"Q1,Q2",
"s2":"Q3,Q4",
"s3":"Q5,Q6",
}]
}
string serializedString = JsonConvert.SerializeObject(studDetails);
StudInfo = JsonConvert.Deserialize<StudInfo>(serializedString);