c#
  • asp.net-mvc
  • json
  • 2014-10-28 40 views 3 likes 
    3

    试图将一些JSON传递给我的视图。字符串数组未正确序列化为json?

    在控制器:

    var array = new string[] {"123", "AAA"}; 
    string jsonArray = JsonConvert.SerializeObject(array); 
    ViewBag.JsonDataLabels = jsonArray; 
    

    在视图中的脚本:

    var jLabels = '@ViewBag.JsonDataLabels'; 
    

    但这JSON似乎有点无效。 例如,如果我这样做的脚本:

    var jLabels = '@ViewBag.JsonDataLabels'; 
    alert(jLabels); // OUTPUT KO : ["123","AAA"] 
    var jLabels2 = ["AAA", "123"]; 
    alert(jLabels2); // OUTPUTS OK : AAA, 123 
    

    为什么我的JSON无效?

    +1

    在控制器代码上,'jsonLabels'没有定义,你的意思是'ViewBag.JsonDataLabels = jsonArray'? – 2014-10-28 16:47:03

    +0

    对不起,已编辑。 – user3744187 2014-10-28 16:48:27

    +3

    它是HTML编码的字符串,我认为你需要类似'@ Html.Raw(ViewBag.JsonDataLabels)' – 2014-10-28 16:50:42

    回答

    0

    分析此(从newtonsoft网站样品)

    Product product = new Product(); 
    product.Name = "Apple"; 
    product.Expiry = new DateTime(2008, 12, 28); 
    product.Sizes = new string[] { "Small" }; 
    
    string json = JsonConvert.SerializeObject(product); 
    //{ 
    // "Name": "Apple", 
    // "Expiry": "2008-12-28T00:00:00", 
    // "Sizes": [ 
    // "Small" 
    // ] 
    //} 
    

    为您的预期的结果使用VAR阵列=新{ “123”, “AAA”};

    相关问题