見these docs,你需要利用ko.toJSON
方法:
function ViewModel() {
var self = this;
var jsonData = {
name: "Johnny",
surname: "Boy"
};
var json = ko.toJSON(jsonData, null, 2);
console.log(json);
self.myjson = json;
};
var vm = new ViewModel();
ko.applyBindings(vm);
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.0/knockout-min.js"></script>
<pre data-bind="text: myjson"></pre>
第二個和第三個參數都是可選的。當我輸入它們時,它們暗示你想要格式化輸出,ko.toJSON
使用與JSON.stringify相同的參數。
作爲一個腳註,ko.toJS
也很有用,主要用於將整個視圖模型(但只是其公共屬性)轉換爲普通的JS對象。看到這個例子:
function ViewModel() {
var self = this;
// Not visible in ko.toJS/ko.toJSON:
var privateproperty = "privacy!";
self.alerter = function() { alert('Hi!'); };
// All visible in ko.toJS/ko.toJSON:
self.name = ko.observable("Johnny");
self.surname = ko.observable("Boy");
self.publicproperty = "publicly!";
};
var vm = new ViewModel();
ko.applyBindings(vm);
console.log(ko.toJS(vm)); // outputs a JS *object*
console.log(ko.toJSON(vm)); // outputs it as a json-string
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.0/knockout-min.js"></script>
See console.log output...
'ko.toJS'和'ko.toJSON'兩種不同的方法。你想轉換爲JSON或不? –
你的jsonData是一個JSON對象 –