簡體   English   中英

將 JSON 序列化為 JSON 數組(嵌套 JSON)以用於 POST 請求 C#

[英]Serialize JSON to JSON Array (Nested JSON) for POST Request C#

這就是我正在努力實現的目標。 我正在嘗試將我的模型序列化為 JSON 以用於發布請求以插入記錄

{
    "Data": [
        {
            "employee_num": "7812345",
            "code": "333",
            "startdate": "2020-10-03"
        },
        {
            "employee_num": "2345789",
            "code": "444",
            "startdate": "2020-10-03"
        }
    ]
}

我被這個困住了

{
     "employee_num": "7812345",
     "code": "333",
     "startdate": "2020-10-03"
},
{
     "employee_num": "2345789",
     "code": "444",
     "startdate": "2020-10-03"
}

這是我的代碼

var options = new JsonSerializerOptions
{
WriteIndented = false
};
var jsonString = JsonSerializer.Serialize(Model, options);

新手來了

我使用了 newtonsoft 的 Json Conerter 並得到了你想要的格式。

Test t = new Test("Max", "Musterallee", "Mustermann@Muster.de");
Test t1 = new Test("Max2", "Musterallee2", "Mustermann2@Muster.de");

Test2 t2 = new Test2();
t2.addUser(t);
t2.addUser(t1);
var output = JsonConvert.SerializeObject(t2);
Console.WriteLine(output);

測試:

class Test
{
    public string name { get; set; }
    public string adress { get; set; }
    public string email { get; set; }
    public Test(string name, string adress, string email)
    {
        this.name = name;
        this.adress = adress;
        this.email = email;
    }
}

測試2:

class Test2
{
    public List<Test> Data;
    public Test2()
    {
        Data = new List<Test>();
    }

    public void addUser (Test t1)
    {
        Data.Add(t1);
    }
}

輸出如下所示:

{
  "Data": [
    {
      "name": "Max",
      "adress": "Musterallee",
      "email": "Mustermann@Muster.de"
    },
    {
      "name": "Max2",
      "adress": "Musterallee2",
      "email": "Mustermann2@Muster.de"
    }
  ]
}

好吧,從技術上講,你的json建議你應該有一個這樣的模型:

public partial class SomeClass // You can choose some better class names.
{
    [JsonProperty("Data")]
    public List<Datum> Data { get; set; }
    public SomeClass()
    {
        Data = new List<Datum>();
    }

}

public partial class Datum
{
    [JsonProperty("employee_num")]
    public string EmployeeNum { get; set; }

    [JsonProperty("code")]
    public string Code { get; set; }

    [JsonProperty("startdate")]
    public string Startdate { get; set; }
}

這就是它的填充方式:

var someClassObj = new SomeClass();

var datum = new Datum
{
    EmployeeNum = "123",
    Code = "321",
    StartDate = "2003-03-03"
};
someClassObj.Data.Add(datum);
// You can add more objects in it as per your need.

然后要將其序列化為json您應該執行以下操作:

var json = JsonConvert.Serialize(someClassObj);

輸出將是這樣的:

{
    "Data": [
        {
            "employee_num": "123",
            "code": "321",
            "startdate": "2003-03-03"
        }
    ]
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM