![](/img/trans.png)
[英]Converting a 2dimensional array in c# to Json string for javascript
[英]C# JSON string to JavaScript array
我在C#中有以下課程:
public class Caption
{
public string line;
public string timestamp;
}
我創建了一些Caption對象並將其添加到列表中:
List<Caption> CaptionList = new List<Caption>();
var obj = new Caption
{
line = "Some text"
timestamp = "00:10"
};
CaptionList.Add(obj);
然后,我使用Json.NET將列表序列化為Json,如下所示:
public string json = JsonConvert.SerializeObject(CaptionList);
現在,我想將此作為JavaScript數組使用,所以我嘗試了以下方法:
var arr = '<%=json%>';
我沒有太多的JavaScript知識,但是好像arr
現在是一個字符串而不是一個數組,因為json
實際上是C#字符串。 我嘗試使用arr[i].line
等訪問對象,但這不起作用。
如何將json
變成JavaScript中的實際數組?
您可以使用JSON.parse
方法將JSON字符串解析為一個數組:
var arr = JSON.parse('<%=json%>');
但是,由於JSON是JavaScript語法的子集,因此您實際上可以將JSON用作JavaScript數組文字:
var arr = <%=json%>;
當作演示
您的變量arr
將以這種方式呈現。 這將是字符串。 因此要將字符串轉換為JSON對象,您需要解析該字符串。 通過使用JSON.parse(arr)
var arr = '[ { "line":"Some text", "timestamp":"00:10" }, { "line":"Some text", "timestamp":"00:10" } ]';
var JObject= JSON.parse(arr);
Now you can access JObject[0].line
這會給你
“一些文字”
您可以在這里查看Mozilla
我們使用MVC,並且在我們想要將模型轉換為javascript對象的視圖中(通過模型),我們使用一條簡單的行:
<script type="text/javascript">
$(document).ready(function () {
MyObject.Initialize(@Html.Raw(Json.Encode(Model)));
});
</script>
所有這些的關鍵是:
@Html.Raw(Json.Encode(Model))
MVC傳遞了“模型”,但是您可以很容易地執行以下操作:(Razor語法)
@{
List<Caption> CaptionList = new List<Caption>();
var obj = new Caption
{
line = "Some text"
timestamp = "00:10"
};
CaptionList.Add(obj);
}
然后...
<script type="text/javascript">
$(document).ready(function () {
MyObject.Initialize(@Html.Raw(Json.Encode(CaptionList)));
});
</script>
我尚未對此進行測試,但是它應該可以工作,或者它可以進行一些變型,您可能需要將“ CaptionList”作為屬性放入某個父對象中,並將其傳遞給Json.Encode。
您也可以這樣做:
<script type="text/javascript">
$(document).ready(function () {
var myArray = @Html.Raw(Json.Encode(CaptionList)));
});
</script>
請注意,這里不需要jQuery,這只是將其包裝在ready函數中的一種方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.