Javascript转换为数组

时间:2017-06-12 14:37:43

标签: javascript knockout.js kogrid

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

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

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

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

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

3 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:2)

您发布的JSON示例无效,有些引用很奇怪,JSON.parse无法直接使用。 这是一个有效的JSON内容:

class InvalidCurrency < StandardError
  ... some logic
end

class Money
  attr_accessor :amount, currency

  def initialize(amount, currency)
    raise InvalidCurrency unless amount > 0
    @amount = amount
    @currency = currency
  end
end

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

答案 2 :(得分: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>