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

Javascript 将JSON从Dojo JsonRest加载到对象变量中,javascript,json,rest,dojo,Javascript,Json,Rest,Dojo,根据这篇文章,我想用JSON数据填充Dojo选择框。问题是我必须先更改JSON数据,然后才能将数据分发到dijit.form.select框 我通过JsonRest获取数据。问题是,如何将Json数据加载到普通对象变量中?我在这里试过,但没用 var processStore = new JsonRest({ target: "http://cnwin.ebusiness.local/activiti-rest/service/repository/process-def

根据这篇文章,我想用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("",{});
我只想将JSON数据从JsonRest存储加载到普通变量中


谢谢

JsonRest商店只接受一个数组,因此您无法检索数据,因为您的商店无法为您读取该数据

如果您只对读取数据感兴趣(因此无需进行更新/创建/删除),最简单的方法是使用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()
现在,您可以编写自己的存储并扩展这些方法