【问题标题】:Cannot accurately parse this JSON in script?无法在脚本中准确解析此 JSON?
【发布时间】:2017-10-27 08:25:31
【问题描述】:
var var1 = JSON.parse('[{"ItemId":1, "ItemName":"item 1\"", "Unit":"Nos","Remarks":null, "ConsumedQuantity":1.00},
        {"ItemId":1253, "ItemName":"item 2", "Unit":"Nos", "Remarks":null, "ConsumedQuantity":1.00}]');

var1.forEach(function (e) {
    Object.keys(e).forEach(function (key) {
        if (e[key] == id) {
           //doing some stuff here
        }
    });
});

当 JSON 中的值不包含双引号时,此代码可以完美运行。此 JSON 是从 MVC 中的模型列表生成的。 我使用@Html.Raw(Json.Encode(ViewBag.materialDetails)) 将列表转换为 JSON。如果有双引号,则不会进入forEach

任何帮助表示赞赏:)

【问题讨论】:

  • 在字符串"ItemName":"item 1\\""时应该是两个\\来转义它

标签: javascript json asp.net-mvc razor


【解决方案1】:

@Html.Raw(Json.Encode(ViewBag.materialDetails)) 应返回有效的 JSON 数据,因此您无需在其周围添加刻度或JSON.parse

如果你改变了

var var1 = JSON.parse('@Html.Raw(Json.Encode(ViewBag.materialDetails))');

到:

var var1 = @Html.Raw(Json.Encode(ViewBag.materialDetails));

它可能会起作用

【讨论】:

  • @Sphinxxx 不错! :)
  • 完美!谢谢:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-28
  • 2013-02-21
  • 1970-01-01
  • 1970-01-01
  • 2013-11-28
相关资源
最近更新 更多