Mic*_*bin 6 c# json azure azure-storage-blobs
我使用 azure blob 存储来存储 JSON 文件,并在我的代码中使用 C# API 下载它。
当我下载文本文件的内容并尝试使用 JsonConvert 对其进行反序列化时,出现错误(Visual Studio JSON 可视化工具也显示文本错误)。但是,如果我复制文本并粘贴到 JSONLint.com 中,它看起来很好。此外,如果我从 Azure 存储手动下载文件并在代码中读取文件,它反序列化就好了。有什么想法为什么我在使用 C# API 下载时得到无效数据?
var storageAccount = CloudStorageAccount.Parse(connectionString);
var blobClient = storageAccount.CreateCloudBlobClient();
var container = blobClient.GetContainerReference(containerName);
var blob = container.GetBlockBlobReference(folderAndFileName);
var text = await blob.DownloadTextAsync();
var obj = JsonConvert.DeserializeObject(text);
// Exception: "Unexpected character encountered while parsing value: . Path '', line 0, position 0."
Run Code Online (Sandbox Code Playgroud)
注意:我正在通过 Powershell 上传文件:
$blobProperties = @{"ContentType" = "application/json"};
Set-AzureStorageBlobContent -Container $containerName -File $LocalFilePath -Blob $RemoteBlobName -BlobType "Block" -Properties $blobProperties
Run Code Online (Sandbox Code Playgroud)
我已经测试了你的代码。看来这个问题与你的代码无关。以下是我用你的代码测试的结果:
实体:
public class People
{
[JsonProperty(PropertyName ="name")]
public string Name { get; set; }
[JsonProperty(PropertyName = "address")]
public string Address { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
杰森文件:
{
"name": "jambor",
"address": "us"
}
Run Code Online (Sandbox Code Playgroud)
正如 Gaurav Mantri 所说,我建议你检查一下你的存储库。我的Azure存储库的版本是7.2.1。还请在代码处设置断点var obj = JsonConvert.DeserializeObject(text);
。然后检查文本的值。它可能会帮助您找出问题所在。
归档时间: |
|
查看次数: |
1267 次 |
最近记录: |