我正在尝试序列化一个列表,然后将 json 字符串反序列化为一个 js 数组。
<script>
function listContainerBlobs(json, container) {
@*var arr = @JsonConvert.DeserializeObject(json);*@
var arr = JSON.parse(json);
var blobs = document.getElementById('container-blob-display').innerHTML = "<h4>" + container + "</h4>";
var otherDiv = document.getElementById('section-1');
var thisDiv = document.getElementById('section-2');
otherDiv.style.display = 'none';
thisDiv.style.display = 'block';
var blobNumber = 0;
for (i = 0; i < arr.length; i++){
blobNumber++;
var blobId = "blobId" + blobNumber;
blobs += "<p class='search-result' id='" + blobId + "' onclick='downloadBlob('" + blobId + "', '" + arr[i].Name + "', '" + container + "')' style='float: left; '>" + arr[i].Name + "</p>";
}
}</script>
这是 razor 页面中的 C# 代码,它序列化了一个方法返回的 List。我想知道 json 字符串的格式是否不同,因此我无法在 js 中反序列化 json 字符串。
var blobs = await Model.ListContainerBlobs(container.Name);
var jsonBlob = Json.Serialize(blobs);
//var jsonBlob = JsonConvert.SerializeObject(blobs);
我blobs在 html 页面中使用了一些 lopps 和东西,但我想我会重用这个方法调用来处理 js 函数中的参数,listContainerBlobs(json, container)因此是 json 序列化。
js函数调用:
<p class="search-result blob-container" id="@containerId" onclick="listContainerBlobs('@jsonBlob','@containerModel.Name')">@containerModel.Name</p>
在浏览器中调试时收到错误:
有没有人对此有解决方法,或者有更好的解决方案来序列化/反序列化这个 c# 列表?
如果这里重要的是我序列化的不同 json 类型
Json.Serialize(blob); :
"[{\"StreamWriteSizeInBytes\":4194304,\"ServiceClient\":{\"BufferManager\":null,\"Credentials\":{\"SASToken\":null,\"AccountName\":\"devstoreaccount1 \",\"KeyName\":null,\"IsAnonymous\":false,\"IsSAS\":false,\"IsSharedKey\":true,\"IsToken\":false,\"SASSignature\":null },\"BaseUri\":\" http://127.0.0.1:10000/devstoreaccount1 \",\"StorageUri\":{\"PrimaryUri\":\" http://127.0.0.1:10000/devstoreaccount1 \",\"SecondaryUri\":\" http://127.0.0.1:10000/devstoreaccount1-secondary\"},\"DefaultRequestOptions\":{\"RetryPolicy\":
牧羊人nacy
相关分类