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

时间:2014-03-14 07:51:48

标签: javascript json rest dojo

根据这篇文章Remove String from JSON,我想用JSON数据填充Dojo Selectbox。问题是我必须先更改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数据。

谢谢

1 个答案:

答案 0 :(得分:0)

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

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

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" }); }); 商店的全部功能感兴趣,则必须自行延长。如果查看the code,您可以在以下位置看到几个AJAX请求:

  • JsonRest
  • get()
  • put()
  • remove()

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