-1

我从我的数据库中获取了一个学校列表及其对应的列,该数据库有 1000 多行,然后将其转换为 JSON 并将其传递给我的视图并使用解析它

$.parseJSON('@Html.Raw(Model.subChoiceJsonString)')

然后把它放到一个数组中

ko.observableArray($.parseJSON('@Html.Raw(Model.subChoiceJsonString)'));

但我的问题是它不起作用,但是当行数少得多时它起作用。

我认为由于 Javascript 中字符串的限制而无法解析它。那是对的吗?我怎样才能让它工作?

4

3 回答 3

6

parseJSON()接受一个字符串。
您正在向它传递一个错误转义的字符串文字,如果 JSON 有单引号,它将中断。

相反,您应该使用常规的 Javascript 文字:

var myObject = @Html.Raw(Model.subChoiceJsonString);

请注意,如果 JSON 具有 U+2028 LINE SEPARATOR,这将中断;看这里

于 2013-05-30T14:44:40.037 回答
0

HTTP 本身没有大小限制,但您的服务器框架可能会施加一些限制。或者,您的 HTTP 请求可能会超时哪些较大的响应。

于 2013-05-30T14:47:17.423 回答
0

是的,这似乎是巨大的......相反,我会添加分页或类似于您的控件的东西。我不知道为什么用户希望一次看到 1000 多个项目。相反,一次只显示 50-100 个,并允许用户对完整列表进行分页。

于 2013-05-30T14:44:26.973 回答