将JSON从Dojo JsonRest加载到对象变量中

Loading JSON from Dojo JsonRest into object variable

本文关键字:对象 变量 加载 JsonRest JSON Dojo      更新时间:2023-09-26

根据这篇文章从JSON中删除字符串,我想用JSON数据填充一个Dojo选择框。问题是,我必须改变JSON数据之前,我可以分发数据到dijit.form.select框。

我通过JsonRest获得数据。问题是,我如何将Json数据加载到普通对象变量中?我在这里试了一下,但是没有工作。

var processStore = new JsonRest({
            target: "http://cnwin.ebusiness.local/activiti-rest/service/repository/process-definitions?startableByUser=kermit", 
            headers: {"Authorization": "Basic a2VybWl0Omtlcm1pdA=="}, 
            allowNoTrailingSlash: false
            });
var processes = processStore.query("",{});

我只是想从JsonRest存储中加载JSON数据到一个普通变量中。

谢谢

JsonRest store只接受数组,因此您无法检索数据,因为您的store无法为您读取该数据。

如果您只对读取数据感兴趣(因此不需要更新/创建/删除),最简单的方法是使用AJAX请求检索该数据并手动将其放入dojo/store/Memory存储中,例如:

require([ "dojo/request/xhr", "dojo/store/Memory" ], function(xhr) {
    var url = "http://cnwin.ebusiness.local/activiti-rest/service/repository/process-definitions?startableByUser=kermit";
    xhr(url, {
        handleAs: json
    }).then(function(data) {
        if (data.data !== undefined) {
            var myStore = new Memory({
                data: data.data
            });
            // Do something with "myStore"
    });
});

如果您对JsonRest存储的全部功能感兴趣,您将不得不自己扩展它。如果您查看代码,可以看到几个AJAX请求,在:

  • get()
  • put()
  • remove()
  • query()

现在您可以编写自己的存储并扩展这些方法。