如何在sap.ui.layout.form.SimpleForm中打印JSON

时间:2016-02-24 18:14:09

标签: javascript json sapui5

我试图在sapui5表单中打印一个JSON变量。我有以下代码:

var dataActualMeasure, oModelActualMeasure;

function initActualMeasure() {
    dataActualMeasure = {
        status: ""
    }
    oModelActualMeasure = new sap.ui.model.json.JSONModel();
    oModelActualMeasure.setData(dataActualMeasure);
    sap.ui.getCore().setModel(oModelActualMeasure, "actualMeasure");
};
initActualMeasure();

function updateMeasures() {
    oModelActualMeasure.loadData(url + "/?action=Status");
    oModelActualMeasure.attachRequestCompleted(
        function() {
            oModelActualMeasure.refresh();
        });
}

var measuresForm = new sap.ui.layout.form.SimpleForm(
    "measuresForm", {
        maxContainerCols: 1,
        editable: true,
        content: [
            new sap.ui.core.Title({
                text: "Kafka Status"
            }),
            new sap.m.Label({
                text: "Status"
            }),
            new sap.m.Input({
                value: "{actualMeasure>/status}"
            }).setEditable(false)
        ]
    });

var page = new sap.m.Page("page", {
    title: "Results",
    content: [
        measuresForm
    ]
});

窗口每1秒刷新一次,因此新的jSON值将分配给变量' status'每一秒都在页面上打印但不是很漂亮。我怎么打印它。 我试着宣布

var jsonString =  JSON.stringify(oModelActualMeasure.getData().status);

并在页面内容[]中包含此变量,但这对我没有帮助。请帮我。我是sapui5的初学者。

1 个答案:

答案 0 :(得分:1)

使用JSON.stringify parameters

//JSON.stringify(value[,replacer[, space]])
var jsonString =  JSON.stringify(oModelActualMeasure.getData().status, null, '\t');

空间将执行以下操作(来自developer.mozilla.org):

一个String或Number对象,用于将空白插入输出JSON字符串以便于阅读。如果这是一个数字,则表示用作空格的空格字符数;如果这个数字大于10,则该数字的上限为10。小于1的值表示不应使用空格。如果这是一个String,则字符串(或字符串的前10个字符,如果长于该字符串)用作空格。如果未提供此参数(或为null),则不使用空格。