あなたがko.toJSON
メソッドを利用する必要がある、these docsを参照してください。
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'は、2つの異なる方法があります。あなたはJSONに変換しようとしているのですか? –
jsonDataはJSONオブジェクトです –