gpt4 book ai didi

c# - 将对象列表以 json 格式保存到 blob

转载 作者:太空宇宙 更新时间:2023-11-03 11:59:55 29 4
gpt4 key购买 nike

我正在用 C# 创建一个对象列表。我想将它们以正确的 JSON 格式保存在 Blob 存储容器中。目前,我将它们保存在本地驱动器上,然后上传到 blob。我面临的两个问题:1. 添加新对象时的 Json 格式如下所示:

[
{
"id": "1",
"Name": "Peter",
"Surname": "Pan"
}
]
[
{
"id": "2",
"Name": "Steve",
"Surname": "Pan"
}
]

如何更新我的代码以使它们成为一个具有逗号分隔值的数组?

[
{
"id": "1",
"Name": "Peter",
"Surname": "Pan"
},
{
"id": "2",
"Name": "Steve",
"Surname": "Pan"
}
]
  • 有没有办法在不先将文件保存到本地驱动器上的情况下保存到我的 blob?
  • List<Obj> list= new List<Obj>();

    list.Add(new Obj()
    {
    Id = "1",
    Name = "Peter",
    Surname = "Pan"
    });

    // Serialize to JSON output
    var serializer = new JavaScriptSerializer();
    var serializedResult = serializer.Serialize(list);

    // write string to file locally
    System.IO.File.AppendAllText(@"people.json", serializedResult);

    //Create or overwrite the "myblob" blob with the contents of a local file
    using (var fileStream = System.IO.File.OpenRead(@"people.json"))
    {
    await blockBlob.UploadFromStreamAsync(fileStream);
    }

    Json 输出格式错误,创建的新对象是一个新数组,如何上传此文件而不在本地驱动器上保存副本?

    最佳答案

    您可以将 Azure 表 ( Here is a great tutorial with examples ) 用于您的用例。基本上,您无需先将数据转换为 JSON 即可保存数据,并且无需重新上传整个文件即可查询和更新特定数据。

    根据教程示例和您的代码,您需要执行以下操作:

    CloudStorageAccount storageAccount = new CloudStorageAccount(
    new Microsoft.WindowsAzure.Storage.Auth.StorageCredentials(
    "<name>", "<account-key>"), true);

    // Create the table client.
    CloudTableClient tableClient = storageAccount.CreateCloudTableClient();

    // Get a reference to a table named "peopleTable"
    CloudTable peopleTable = tableClient.GetTableReference("peopleTable");

    await peopleTable.CreateIfNotExistsAsync();

    TableBatchOperation batch = new TableBatchOperation();

    batch.Add(TableOperation.InsertOrReplace(new Obj()
    {
    PartitionKey = "1",
    RowKey = "<SomeOtherIdentifier>",
    Name = "Peter",
    Surname = "Pan"
    }));

    IList<TableResult> results = await peopleTable.ExecuteBatchAsync(batch);

    // Do what you have to do with the results

    非常重要说明:您的模型(在本例中为 Obj)必须实现接口(interface) ITableEntity,或者简单地从 EntityEntity 对象派生。这就是为什么您的 Obj 现在具有 PartitionKeyRowKey 属性。

    这两个属性的组合为 Azure 表中的每一行创建唯一标识符。

    如果您还有其他问题,请告诉我。 :)

    关于c# - 将对象列表以 json 格式保存到 blob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57508266/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com