【发布时间】:2023-02-23 18:43:39
【问题描述】:
要与 API 集成,我需要我的 C# 输出以下 json:
"fields": {
"name1": {
"key1": "value1",
"key2": "value2"
},
"name2": {
"key3": "value3",
"key4": "value4"
},
"etc..."
}
我不明白如何设置它。
目前我正在使用一个类,然后将其序列化:JsonConvert.SerializeObject(document)。
我尝试了以下代码:
public class Fields
{
public string Name { get; internal set; }
public Field myField { get; internal set; }
public class Field
{
public string Value { get; internal set; }
public string Key { get; internal set; }
public Field(string value, string key)
{
Value = value;
Key = key;
}
}
public Fields(string name, Field myField)
{
Name = name;
this.myField = myField;
}
}
List<Fields> myFields = new List<Fields>();
foreach (var field in recipient.Fields)
{
myFields.Add(new Fields(field, new Fields.Field(name, value)));
}
document.Fields = myFields;
但这导致:
"fields": [
{
"Name": "name1",
"myField": {
"key1": "value1",
"key2": "value2"
}
},
{
"Name": "name1",
"myField": {
"key3": "value3",
"key4": "value4"
}
}
]
字段集合周围的方括号需要去掉,其中显示“myField”的地方应替换为变量“name1”、“name2”等。名称可能会重复。
我可以用给定的变量手动创建正确的字符串,但我觉得必须有更好、“正确”的方法来实现这一点。
【问题讨论】:
-
您需要使用字符串字段字典而不是列表