-1

我需要创建一个对象数组,每个对象都包含“LicenseRefNo”、“FPPRNO”等字段。

该网站对当前返回以下 json 的 C# 控制器进行 ajax 调用:

"[{\"LicenseRefNo\":\"17/00031/HMO\",\"FPPRNO\":\"AGE146\"},{\"LicenseRefNo\":\"16/00031/HMO\",\"FPPRNO\":\"AGE146\"}]"

这似乎几乎是正确的,但我需要将其设置为 KOGrid 的 gridOptions.data 属性。似乎 javascript 代码遇到了问题,因为 KOGrid 需要是一个可观察的数组,并且要创建其中一个,我需要一个 javascript 数组。

请问如何将我拥有的字符串转换为数组?

4

3 回答 3

5

JSON.parse(string)应该做的伎俩

于 2017-06-12T14:38:44.933 回答
2

您发布的 JSON 示例无效,一些引号很奇怪, JSON.parse 不能直接工作。这是一个有效的 JSON 内容:

"[{\"LicenseRefNo\":\"17/00031/HMO\",\"FPPRNO\":\"AGE146\"},{\"LicenseRefNo\":\"16/00031/HMO\",\"FPPRNO\":\"AGE146\"}]"

你确定你发布的内容就是你得到的吗?它甚至不是一个有效的字符串。

于 2017-06-12T14:48:35.283 回答
1

OberservableArray 附带淘汰赛,您可以创建一个

编辑:我用一个工作示例创建了一个小提琴,因为发布的内容似乎被破坏了

var viewModel = function() {
    var yourLoadedArray =[{"LicenseRefNo":"17/00031/HMO","FPPRNO":"AGE146"},{"LicenseRefNo":"16/00031/HMO","FPPRNO":"AGE146"}]; 
  	this.obsArr = ko.observableArray(yourLoadedArray);
    this.test = "test";
};

 
ko.applyBindings(viewModel);
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<span data-bind="text: test"></span>
<div  data-bind="foreach: obsArr">
  <span  data-bind="text: LicenseRefNo"></span>
</div>

于 2017-06-12T14:41:30.243 回答