如何添加属性数据:for json



我在C#中创建了一个对象列表,但我很难理解如何在它的开头添加一个属性(这可能不是正确的术语(:

这可能真的很明显,我不确定我需要什么来谷歌!任何帮助都将不胜感激!

我想做的事:

{
'data' : [  <--Add this in (is this a property of the object?)
{
'valueName1': 'value1',
'valueName2': 'value2',
'valueName3': 'value3',
},
{
'valueName1': 'value1',
'valueName2': 'value2',
'valueName3': 'value3',
},
]}

我现在有什么!

[  
{
'valueName1': 'value1',
'valueName2': 'value2',
'valueName3': 'value3',
},
{
'valueName1': 'value1',
'valueName2': 'value2',
'valueName3': 'value3',
},
]

这就是我目前在C#中得到的:

result= new List<TestList> { };
foreach (var issueData2 in myDeserializedClass.issues)
{
result.Add(new TestList { valueName1 = issueData2.fields.summary, 
valuename2 = issueData2.fields.created,
valuename3 = issueData2.fields.updated, });

}

string jsonString = JsonConvert.SerializeObject(newtonresult);

此类:

public class TestList
{
public String valuename1 { get; set; }
public String valuename2 { get; set; }
public String valuename3 { get; set; }
}

请不要为了让JSON正确显示而违反C#命名约定(属性具有PascalCaseNames(;常见的json序列化程序支持的属性允许您以不同于json:的方式命名C#属性

public class TestList
{
[JsonProperty("valuename1")] 
public String ValueName1 { get; set; }
[JsonProperty("valuename2")]
public String ValueName2 { get; set; }
[JsonProperty("valuename1")]
public String ValueName3 { get; set; }
}

如果你需要的话;通常还可以配置序列化程序,使其生成camelCaseJsonPropertyNames,即使C#名称是PascalCase(例如(

正如GSerg所评论的,你可以把你的测试列表放在另一个类中:

public class Wrapper { 
[JsonProperty("data")]
public List<TestList> Data { get; set;}
}

然后创建:

result= new List<TestList> { };
foreach (var issueData2 in myDeserializedClass.issues)
{
result.Add(new TestList { valueName1 = issueData2.fields.summary, 
valuename2 = issueData2.fields.created,
valuename3 = issueData2.fields.updated, });

}
var ser = new Wrapper { Data = result };
string jsonString = JsonConvert.SerializeObject(ser);

如果你想要的话,实际上你甚至不需要类Wrapper。。您也可以使用匿名类型:

string jsonString = JsonConvert.SerializeObject(new{ data = result });

因此,您基本上需要属性data,它是对象TestList类的数组

public class Test{
public IEnumerable<TestList> data {get; set'}
}

现在您可以串行化数据

string jsonString = JsonConvert.SerializeObject<Test>(newtonresult);

最新更新