在 TextArea 中使用 vkbeautify 漂亮打印的结果
Use result of vkbeautify pretty print in TextArea
您好,我有以下 TextArea 来显示 JSON 字符串:
<TextArea id="payloadlabel" width="1000px" height='auto' rows='80' />.
我的问题是 JSON 字符串格式不正确,请参阅 example。
我正在使用库 vkbeautify,如下所示:
var myObj = {
"urn.getxxxx": {
"urn.xxxx" : "cxxxxx-44e9-xxxx-a91b-0000xxxx\xxxxx\3xx\xx\x\",
"urn.xxxx" : "xxxxx",
"urn.xxxxx" : "x",
"urn.xxxx": "20xx-07-08xxx:03:41+02:00"
}
};
var request = JSON.stringify(myObj);
vkbeautify.json(request);
var tryModel = new sap.ui.model.json.JSONModel();
tryModel.setData(request);
var payloadtxta = sap.ui.getCore().byId(view.createId('payloadlabel'));
payloadtxta.setModel(tryModel);
payloadtxta.setValue(request);
很遗憾,它不起作用。 JSON 内容与示例中的内容完全相同。这里有什么问题?
我的网络内容中有 vkbeautify.js 文件,我将其包含在索引中。
<script type="text/javascript" src="vkbeautify.js"></script>
因为我没有收到 vkbeautify 方法的错误信息,所以我认为我以正确的方式包含了它。如果您知道任何其他方法来格式化 JSON 任何其他库或想法的内容,欢迎提出建议。谢谢。
您使用了错误的变量(顺便说一句:JSON.stringify 是多余的,因为您已经有一个 JSON 字符串):
var beautifiedObj = vkbeautify.json(myObj);
var payloadtxta = this.byId(view.createId("payloadlabel"));
payloadtxta.setValue(beautifiedObj);
您的示例中从未使用过该模型,因此您可以删除它或将其用作 UI5 的预期目标并将控件直接绑定到模型 属性。
<TextArea id="payloadlabel" value={/request}" width="1000px" height='auto' rows='80' />.
this.setModel(new sap.ui.model.json.JSONModel({
"request" : vkbeautify.json(myObj)
});
查看 vkbeautify 的源代码,如果您只是为此目的使用该库,那将毫无意义 - 您可以使用标准 JavaScript:
var beautifiedTxt = JSON.stringify(myObj, null, 4);
var payloadtxta = sap.ui.getCore().byId(view.createId("payloadlabel"));
payloadtxta.setValue(beautifiedTxt);
在此处查看 MDN 上 JSON.stringify 的文档 - https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify
vkbeautify 的 REF 源 - https://github.com/vkiryukhin/vkBeautify/blob/master/vkbeautify.js#L152。
您好,我有以下 TextArea 来显示 JSON 字符串:
<TextArea id="payloadlabel" width="1000px" height='auto' rows='80' />.
我的问题是 JSON 字符串格式不正确,请参阅 example。
我正在使用库 vkbeautify,如下所示:
var myObj = {
"urn.getxxxx": {
"urn.xxxx" : "cxxxxx-44e9-xxxx-a91b-0000xxxx\xxxxx\3xx\xx\x\",
"urn.xxxx" : "xxxxx",
"urn.xxxxx" : "x",
"urn.xxxx": "20xx-07-08xxx:03:41+02:00"
}
};
var request = JSON.stringify(myObj);
vkbeautify.json(request);
var tryModel = new sap.ui.model.json.JSONModel();
tryModel.setData(request);
var payloadtxta = sap.ui.getCore().byId(view.createId('payloadlabel'));
payloadtxta.setModel(tryModel);
payloadtxta.setValue(request);
很遗憾,它不起作用。 JSON 内容与示例中的内容完全相同。这里有什么问题?
我的网络内容中有 vkbeautify.js 文件,我将其包含在索引中。
<script type="text/javascript" src="vkbeautify.js"></script>
因为我没有收到 vkbeautify 方法的错误信息,所以我认为我以正确的方式包含了它。如果您知道任何其他方法来格式化 JSON 任何其他库或想法的内容,欢迎提出建议。谢谢。
您使用了错误的变量(顺便说一句:JSON.stringify 是多余的,因为您已经有一个 JSON 字符串):
var beautifiedObj = vkbeautify.json(myObj);
var payloadtxta = this.byId(view.createId("payloadlabel"));
payloadtxta.setValue(beautifiedObj);
您的示例中从未使用过该模型,因此您可以删除它或将其用作 UI5 的预期目标并将控件直接绑定到模型 属性。
<TextArea id="payloadlabel" value={/request}" width="1000px" height='auto' rows='80' />.
this.setModel(new sap.ui.model.json.JSONModel({
"request" : vkbeautify.json(myObj)
});
查看 vkbeautify 的源代码,如果您只是为此目的使用该库,那将毫无意义 - 您可以使用标准 JavaScript:
var beautifiedTxt = JSON.stringify(myObj, null, 4);
var payloadtxta = sap.ui.getCore().byId(view.createId("payloadlabel"));
payloadtxta.setValue(beautifiedTxt);
在此处查看 MDN 上 JSON.stringify 的文档 - https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify
vkbeautify 的 REF 源 - https://github.com/vkiryukhin/vkBeautify/blob/master/vkbeautify.js#L152。