您好我有以下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内容任何其他库或想法,欢迎提出建议。谢谢。
答案 0 :(得分:0)
您使用的是错误的变量(BTW: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)
});
答案 1 :(得分:0)
看一下vkbeautify的来源,如果你只是为了这个目的使用那个库,那就毫无意义了 - 你可以用标准JavaScript做你需要的东西:
class setInterval():
def __init__(self, func, sec):
def func_wrapper():
self.t = threading.Timer(sec, func_wrapper)
self.t.start()
func()
self.t = threading.Timer(sec, func_wrapper)
self.t.start()
def cancel(self):
self.t.cancel()
在此处查看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。