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

标签 javascript json rest dojo

根据这篇文章Remove String from 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 存储仅接受数组,因此您无法检索数据,因为您的存储无法为您读取该数据。

如果您只对读取数据感兴趣(因此无需执行更新/创建/删除操作),最简单的方法是使用 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 存储的完整功能感兴趣,则必须自行扩展它。如果你看the code您可以看到几个 AJAX 请求,位于:

  • get()
  • put()
  • 删除()
  • 查询()

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

关于javascript - 将 JSON 从 Dojo JsonRest 加载到对象变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22399106/

相关文章:

javascript - 添加版本可变的模型,NodeJS

javascript - 我在可视化组合和问题的递归调用时遇到了一些问题?

javascript - Service Worker 安装失败 : "cannot read property ' addAll of undefined"

javascript - 来自 Watson Translator 的 JSON 响应未定义

android - 如何从框架中获取 json 数据 (Yii)

PHP API 最佳实践 - 回显 json_encoded 对象 : bad or good?

c# - 将图像发送到 WebApi 服务

javascript - Angular 将特定数据检索到 $scope 变量中不起作用

c# - 使用 Json.NET : "Unexpected token: StartObject" 进行解析

java - 预检响应在 Angular 4 和 Spring Boot (RestAPI) 应用程序中具有无效的 HTTP 状态代码 403